仅供参考,我遵循此thread。自定义rand()函数返回相同的值
我请从main()
功能此功能,其在范围[0, N]
返回一个随机值:
int randr(int min, int max) { int r = (rand() % (max+1-min)+min); return r; }
例如:
int main()
{
unsigned int r=128;
while(r--)
{
int a = randr(0, 63);
int b = randr(64, 127);
printf("%d %d\n", a, b);
}
return 0;
}
的问题是,每次执行该程序时,可变a
和b
总是包含相同的生成值,为什么(我的意思是printf总是和终端上的数据相同)?
任何C随机数教程将给出答案。 – chris 2013-03-15 03:55:30
你需要在使用rand()之前设置你的随机种子。 – taocp 2013-03-15 03:56:30
可能的重复[为什么我总是用rand()函数得到相同的随机数序列?](http://stackoverflow.com/questions/1108780/why-do-i-always-get-the-same-sequence随机数与兰特) – Blastfurnace 2013-03-15 03:59:41