c – 调用srand如何不止一次影响随机性的质量?
这
comment,其中指出:
……我已经加粗了我遇到问题的路线…重复一般建议,在程序中拨打 但是,我不明白为什么这意味着srand应该或者只能被调用一次,或者它如何导致更少的随机数. cppreference:
phoxis对srand() — why call only once?的回答:
也许他们只是使用不精确的语言,没有一个解释似乎解释了为什么多次调用srand是坏的(除了生成相同的随机数序列)或它如何影响数字的“随机性”.有人可以为我清楚这一点吗? 解决方法
std :: time(0)函数以秒为单位返回时间.
问题是如果你每次要求一个随机数std时调用std :: srand(),那么计算机速度很快,std :: time(0)函数在调用std :: srand()之间不会改变: :srand()将继续被重置以产生相同的数字序列,直到std :: time()函数返回不同的时间(一秒后). 在一秒钟内,您最终可以生成相同数量的数百万次!这不是很随机. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |