我是 Python 新手,对此我无法理解。我定义了以下函数:
def FlipCoins(num_flips):
heads_rounds_won = 0
for i in range(10000):
heads = 0
tails = 0
for j in range(num_flips):
dice = random.randint(0,1)
if dice==1: heads += 1
else: tails += 1
if heads > tails: heads_rounds_won += 1
return heads_rounds_won
这是它应该做的(但显然不是):掷硬币num_flip
次数,计算正面和反面,看看正面是否多于反面。如果是,则增加head_rounds_won
1。重复 10000 次。
我假设这head_rounds_won
将接近 5000 (50%)。它对奇数作为输入执行此操作。例如,3、5 或 7 将产生大约 50%。然而,偶数会产生低得多的结果,更像是 34%。尤其是小数字,对于更高的偶数,例如 800,与 50% 的差异要小得多。
为什么会这样?任何输入都不应该产生大约 50% 的正面/反面吗?