random.uniform(0,1)会产生0或1吗?

问题描述 投票:2回答:1

the documentation中,据说uniform(0,1)有可能生成值01

我已运行uniform(0, 1) 10000次,但从未产生零。即使在uniform(0, 0.001)的情况下。

random.uniform(0,1)是否可以生成01

python random uniform-distribution
1个回答
6
投票

“几次”是不够的。 10,000还不够。 random.uniform从2 ^ 53(9,007,199,254,740,992)个不同的值中进行选择。您对其中的[[two感兴趣。这样,您应该期望在获得恰好为0或1的值之前先生成几个quadrillion随机值。所以有可能,但是很有可能永远不会观察到它。


0
投票
documentation告诉您端点b

可以包含在产生的值中:

根据公式b中的浮点舍入,端点值a + (b-a) * random()可以包含或不包含在范围内。

因此,对于uniform(0, 1),简化为0 + (1-0) * random()的公式1 * random()必须能够精确生成1。这永远不会发生,因为random()从不产生1.0

© www.soinside.com 2019 - 2024. All rights reserved.