我正在尝试生成随机数,但是我不断地得到数字41。这个简单的片段可能出了什么问题?
可能重复:
在C语言中生成随机数
使用rand生成随机数
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a = rand();
printf("%d",a);
return 0;
}
感谢您的帮助。
我正在尝试生成随机数,但是我不断地得到数字41。这个简单的片段可能出了什么问题?
可能重复:
在C语言中生成随机数
使用rand生成随机数
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a = rand();
printf("%d",a);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int a;
srand ( time(NULL) );
a = rand();
printf("%d",a);
return 0;
}
您需要给生成器提供种子。
这是预期的。原因是为了结果的可重复性。假设您正在使用随机序列进行某些测试,而您的测试在特定时间或迭代后失败。如果您保存种子,则可以重复测试以进行复制/调试。使用毫秒级别的时代当前时间作为种子,您将得到所期望的随机数(并保存种子,如果您认为需要重复结果)。
41
。 - Brian Roach