【发布时间】:2014-05-04 08:22:54
【问题描述】:
以下sn-p代码取自a Pseudo-random number generator (written in ActionScript 3):
public function random():Number {
_currentSeed = (_currentSeed * 16807) % 2147483647);
return (_currentSeed/0x7FFFFFFF) + 0.000000000233;
}
第一行代码很容易理解,是标准的linear congruential generator,乘数为16807。第二行的第一部分将生成的整数转换为大致介于0 和1 之间的浮点数。
但是,第二行的最后一部分+ 0.000000000233 的目的是什么?在这样的 RNG 中是否有必要,还是有不同的目的?
【问题讨论】:
-
我已经为 AS3 标记了这个,但我确信这个问题也适用于许多其他编程语言。
-
Psstt 从不问魔法;这很神奇。
标签: actionscript-3 random magic-numbers