可能重复:
Generating random numbers in C
using rand to generate a random numbers
我正在尝试生成随机数,但我不断得到数字41。 在如此简单的片段中可能会出现什么问题?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a = rand();
printf("%d",a);
return 0;
}
感谢您的帮助。
答案 0 :(得分:12)
您需要提供不同的种子,例如:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int a;
srand ( time(NULL) );
a = rand();
printf("%d",a);
return 0;
}
答案 1 :(得分:2)
你需要为发电机播种。
这是预期的。原因是结果的可重复性。假设您使用随机序列进行一些测试,并且在特定时间或迭代后测试失败。如果保存种子,则可以重复测试以复制/调试。使用epoch当前时间以毫秒为单位播种,并按预期获得randoms(如果您认为需要重复结果,则保存种子)。