我知道我们使用random.random()生成0到1之间的随机小数。 随机数小于.5的概率是否等于50%? 并且随机数大于.5等于50%?
答案 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);
}