Python - 0到1之间随机数的概率

时间:2015-07-22 19:54:04

标签: python probability

我知道我们使用random.random()生成0到1之间的随机小数。 随机数小于.5的概率是否等于50%? 并且随机数大于.5等于50%?

3 个答案:

答案 0 :(得分:3)

是。来自docs:

  

几乎所有模块函数都依赖于基本函数random(),它在半开放范围[0.0,1.0]中生成随机浮点均匀。 Python使用Mersenne Twister作为核心生成器。

答案 1 :(得分:1)

使用以下内容进行快速测试后:

import random

random.seed( None )

less_than_half = 0
greater_than_half = 0
equal_to_half = 0

for i in range( 0, 2**26 ):
    x = random.random()
    if x < .5:
        less_than_half += 1
    elif x > .5:
        greater_than_half += 1
    else:
        equal_to_half += 1

print less_than_half
print greater_than_half
print equal_to_half

运行四次(由于内存错误),我总共有134,217,147个结果少于0.5,134,218,309个结果大于.5,没有等于.5。 结果总共49.9997836%的结果小于.5。

实际结果可能因系统时钟的种子而异。

答案 2 :(得分:0)

自行测试的小片段。但Chad Miller所说的似乎是最正确的答案。生成大于0.5的数字的概率确实总是低于产生小于0.5的数字的概率。 这是因为(0.5,1.0)是一个更小的无限数组而不是[0.0,0.5],因为包含0.0且排除了1.0。

function alerting(message){
    alert('A new message was received: ' + message);
}