抛硬币:n 次试验中具有期望值的试验频率
Coin Toss: Frequency of trials with Expected Value out of n trials
我在模拟10次硬币抛反面的概率,运行那个游戏n次。
说
n = 100,
total_tosses = n * 10 = 10000
n = 1000,
total_tosses = n * 10 = 100000
n = 100000,
total_tosses = n * 10 = 1000000
我知道抛硬币的期望值是0.5
在 10 次试验中,我预计有 5/10 次出现反面
但是模拟 n 次 10 次试验会产生一些有趣的结果,我无法理解...
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
# will return 1d array of 10 coin tosses in a single trial.
# = [1,0, ... 1,1] len = 10
def coin_game(num_flips):
coin_tosses = []
for x in range(num_flips):
coin = np.random.randint(2)
coin_tosses.append(coin)
return coin_tosses
# will return 1d array with total num of tails, for each of the n trials.
# [3,5,2, ... 8,9,1] len = n
def run_sims(num_sims):
num_tails = []
for sim in range(num_sims):
coin_tosses = coin_game(10)
num_tails.append(sum(coin_tosses))
return np.array(num_tails)
# ---Main---
num_trials = 10000
all_tails = run_sims(num_trials)
sns.countplot(all_tails)
plt.show()
为什么总试验次数与显示预期值的试验频率之间存在关系,即 5/10 次抛硬币是反面。
对于 1000 次试验:大约 250 次试验有 5/10 尾巴
对于 10000 次试验:大约 2500 次试验有 5/10 个尾巴
对于 100000 次试验:大约 25000 次试验有 5/10 个尾巴
是什么导致了这种行为?
粗略地说,为什么 freq(5/10 tails) = n/4
我在模拟10次硬币抛反面的概率,运行那个游戏n次。 说
n = 100, total_tosses = n * 10 = 10000
n = 1000, total_tosses = n * 10 = 100000
n = 100000, total_tosses = n * 10 = 1000000
我知道抛硬币的期望值是0.5
在 10 次试验中,我预计有 5/10 次出现反面
但是模拟 n 次 10 次试验会产生一些有趣的结果,我无法理解...
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
# will return 1d array of 10 coin tosses in a single trial.
# = [1,0, ... 1,1] len = 10
def coin_game(num_flips):
coin_tosses = []
for x in range(num_flips):
coin = np.random.randint(2)
coin_tosses.append(coin)
return coin_tosses
# will return 1d array with total num of tails, for each of the n trials.
# [3,5,2, ... 8,9,1] len = n
def run_sims(num_sims):
num_tails = []
for sim in range(num_sims):
coin_tosses = coin_game(10)
num_tails.append(sum(coin_tosses))
return np.array(num_tails)
# ---Main---
num_trials = 10000
all_tails = run_sims(num_trials)
sns.countplot(all_tails)
plt.show()
为什么总试验次数与显示预期值的试验频率之间存在关系,即 5/10 次抛硬币是反面。
对于 1000 次试验:大约 250 次试验有 5/10 尾巴
对于 10000 次试验:大约 2500 次试验有 5/10 个尾巴
对于 100000 次试验:大约 25000 次试验有 5/10 个尾巴
是什么导致了这种行为?
粗略地说,为什么 freq(5/10 tails) = n/4