【发布时间】:2011-07-26 22:53:22
【问题描述】:
可能重复:
How does rand() work? Does it have certain tendencies? Is there something better to use?
我不确定任何编程语言中的 rand() 函数或类似函数何时返回一个完全“合乎逻辑”的值。因为它们不是基于时间、小时、天或其他我想知道他如何选择数字。有人能回答我吗?
谢谢,布鲁诺·阿拉诺。
【问题讨论】:
-
通常它使用线性同余 PRNG,这意味着有一个状态数
s(您可以将其作为初始值),并且在每一轮您计算一些固定常数的s = m * s + bm和c。如果你很好地选择了常数,那么得到的数字看起来很“随机”。当然还有很多其他算法,但是这个特别简单易行。
标签: compiler-construction programming-languages