gpt4 book ai didi

c++ - GNU C 库中 PRNG 的周期是多少?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:17 27 4
gpt4 key购买 nike

是否有任何关于 gcc 的 g++ 中随机数生成器的周期性的文献(如果我们不重新设置函数的种子)?我想我可以自己进行测试,但最好能获得经过充分验证的研究。

预先感谢您的帮助。

//编辑

我只是想补充一点,我已经用多个引擎进行了相当多的搜索,但没有找到任何具体的内容。我只阅读了关于周期性受表示种子所需位数限制的一般性评论。 (所以我想考虑到 srand 通常随时间调用,周期性不会超过 10^12 左右。但在我开始实现我的算法之前,更明确的东西会非常有帮助。)

最佳答案

在 rand(3) 手册页中搜索时,我发现了这个:

The versions of rand() and srand() in the Linux C Library use the same random number generator as random() and srandom()

所以我查看了 random(3) 手册页,这是您的答案:

The period of this random number generator is very large, approximately 16*((2**31)-1)

这对于教学目的非常有用,因为您想开发自己的 PRNG。但是,我不鼓励您在开发应用程序时使用此 PRNG。您应该更喜欢 @Neil Butterworth 建议的 Boost.Random 实现之一(MT19937 是一个很好的默认 PRNG,足以满足大多数应用程序)。

最后,如果你想了解更多关于 PRNG 的知识,我建议你阅读这两篇科学文章,它们很好地调查了 PRNG。

随机高性能计算随机流的实际分布,David RC Hill,高性能计算与仿真 (HPCS) 国际 session , 2010

伪随机数生成器,Pierre L'Ecuyer,量化金融百科全书量化金融百科全书, 2008

关于c++ - GNU C 库中 PRNG 的周期是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6317917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com