我习惯于在半开区间 [0,1) 中返回浮点值的伪随机数生成器。
我已经看到一些对 RNG 的引用,它们可以在闭合区间 [0,1] 上返回值,例如Mersenne Twister 的这个实现。
我可以看到您出于数学原因想要排除一个或两个端点的原因,例如
exponentially_distributed=-logf( 1.0-rng() )
如果 总是产生一个有效的数字0.0<=rng()<1.0
。
但我想不出用产生 [0,1) 的 rng 替换产生 [0,1] 的 rng 会产生任何实际差异的情况。
在什么情况下,绝对有必要在闭区间 [0,1] 上返回值的浮点伪随机数生成器?