随机种子是什么意思?
来源:2-3 随机生成算法测试用例
邹正霖
2020-10-31
老师,能否解释下随机种子是什么意思?
srand(time(NULL))
这和直接rangdom()生成随机数有什么不同?有什么好处?
写回答
1回答
-
liuyubobobo
2020-11-01
简单地说,程序无法真正的生成随机数。程序生成随机数的原理,是靠一个随机种子“启动”。之后省城一系列“伪随机数”。
你可以尝试一下,运行这个程序,每次打印的数字是一样的。
int main(void){ cout << rand() << endl; return 0; }
但是这样做,每次打印的数字就不一样了:
int main(void){ srand(time(NULL)); cout << rand() << endl; return 0; }
因为这样做,每次使用当前的时间戳作为了随机种子,每次运行的时间是不一样的,所以得到的随机数是不一样的。
关于随机种子具体是如何作用在随机数生成算法中,最后得到随机数的,已经超出这个课程的范畴了,也不是在问答区一句话两句话能解释清楚的。如果对此感兴趣,可以在网上搜索自学一下随机数生成算法。
继续加油!:)
112020-11-01
相似问题