为什么rand()总是返回相同的值?
可能重复:
在C中生成随机数
使用rand生成随机数
我正在尝试生成随机数,但我不断得到数字41.这样一个简单的片段可能会出错?
#include #include int main(void) { int a = rand(); printf("%d",a); return 0; }
感谢帮助。
您需要提供不同的种子,例如:
#include #include #include int main(void) { int a; srand ( time(NULL) ); a = rand(); printf("%d",a); return 0; }
你需要为发电机播种。
这是预料之中的。 原因是结果的可重复性。 假设您使用随机序列进行一些测试,并且在特定时间或迭代后测试失败。 如果保存种子,则可以重复测试以复制/调试。 使用epoch当前时间以毫秒为单位播种,并按预期获得randoms(如果您认为需要重复结果,则保存种子)。