表头文件: #include<stdlib.h>定义函数 :int rand(void)函数说明 :因为rand的内部实现是用线性同
余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,
rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()
设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand()产生的是假
随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。返回
值:返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位
数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选
中的机率是相同的。
我的问题是如何生成unsigned int 或是四字节的随机数。。。
还有一个问题 我用下面的两个函数生成随机数。。它们是相同的。。是顺序执行。。都是以时间作为随机种子。
generate(T);
generate(R);
可能是程序短,执行快。。生成的两个随机数是相同的。。可我现在想生成两个1024bit的随机数。要不同的。。谁能帮我想想办法啊(我的1024位是32歌32bit拼起来的,算不算合格啊)
----------------解决方案--------------------------------------------------------
生成 unsigned int
unsigned int r;
srand((unsigned int)time(0));
r = (unsigned int)rand() * (unsigned int)rand();
如果不行,那就
unsigned int r;
unsigned int r1;
unsigned int r2;
srand((unsigned int)time(0));
r1 = rand();
r2 = rand();
r = r1 * r2;
----------------解决方案--------------------------------------------------------
//-------------- unsigned int ---------------//
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
unsigned int r;
srand((unsigned int)time(0));
while(getchar() != 'q')
{
r = (unsigned int)rand() * (unsigned int)rand(); /* 这个方法并不是很好 */
printf("%u\n", r);
}
getchar();
return 0;
}
[此贴子已经被作者于2007-11-4 11:54:05编辑过]
----------------解决方案--------------------------------------------------------
while(getchar() != 'q')
{
r = (unsigned int)rand() * (unsigned int)rand();
printf("%u\n", r);
}
这两个rand()生成的随机数,有甚么关系吗?它们是使用的相同的随机种子吗
----------------解决方案--------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{ unsigned int R[32],T[32];
generate(T);
generate(R);
getch();
return 0;
}
这样生成的是两个1024位的数。。它们为甚么是相同的啊。。怎么可以解决下啊
----------------解决方案--------------------------------------------------------
generate() 是随机数函数吗?
----------------解决方案--------------------------------------------------------
generate(); 是什么函数?
generate(T); 按你写的代码,这个函数接受的是一个int数组首元素的地址。
----------------解决方案--------------------------------------------------------
随机数 除以一个大质数就可以得到任意程度的随机数
只要你有足够的存储空间 和足够大的质数
----------------解决方案--------------------------------------------------------