|
|
1
1
原则上,这很容易。 (0,1)中的均匀随机变量分布为: b 0 /2+ b 1. /4+ b 2. /8+。。。, 哪里 b 我 是无偏随机位(0和1)。 这是一个非常古老的见解,至少可以追溯到冯·诺依曼(1951年,“与随机数字有关的各种技术”)。 因此,原则上,所需要的只是生成一个稳定的无偏随机比特序列。 但是,相比之下,在区间(0,1)中生成一个“统一”浮点数是不平凡的。例如,请参见以下内容: Random floating point double in Inclusive Range 要回复您的评论: 理论上,(0,1)上的均匀分布与[0,1)、(0,1]或[0,1]上的一致分布相同:值0和1出现的概率为零,(0、1)上任何特定数也是如此。然而,(0,1)上的“统一”浮点数与[0,1)、(0,1]或[0,1]上的浮点数不同,因为0和1的出现概率可能为正,这取决于区间分别包含0或1。实际上,在[0,1]上的“一致”浮点数上“丢弃”0和1是在(0,l)上获得“统一”浮点数的最佳方法。 |