请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

随机种子是什么意思?

老师,能否解释下随机种子是什么意思?
srand(time(NULL))
这和直接rangdom()生成随机数有什么不同?有什么好处?

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2020-11-01 05:42:05

简单地说,程序无法真正的生成随机数。程序生成随机数的原理,是靠一个随机种子“启动”。之后省城一系列“伪随机数”。


你可以尝试一下,运行这个程序,每次打印的数字是一样的。

int main(void){
    cout << rand() << endl;
    return 0;
}


但是这样做,每次打印的数字就不一样了:

int main(void){
    srand(time(NULL));
    cout << rand() << endl;
    return 0;
}


因为这样做,每次使用当前的时间戳作为了随机种子,每次运行的时间是不一样的,所以得到的随机数是不一样的。


关于随机种子具体是如何作用在随机数生成算法中,最后得到随机数的,已经超出这个课程的范畴了,也不是在问答区一句话两句话能解释清楚的。如果对此感兴趣,可以在网上搜索自学一下随机数生成算法。


继续加油!:)

1 回复 有任何疑惑可以回复我~
  • 提问者 邹正霖 #1
    好的,明白了,谢谢老师
    回复 有任何疑惑可以回复我~ 2020-11-01 23:22:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信