Подбрасывание монеты: частота испытаний с ожидаемым значением из n испытаний - PullRequest
1 голос
/ 04 июня 2019

Я симулирую вероятность подбрасывания хвостов в 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 хвостов

Но симуляция 10 испытаний n раз даетнекоторые интересные результаты, которые я не могу обернуть вокруг себя ...

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 хвостов) = n / 4

1 Ответ

2 голосов
/ 04 июня 2019

Это просто базовая вероятность (точнее, биномиальное распределение).У вас есть 2^10 возможных результатов, и 252 из них являются «успехами» (содержат 5 хвостов).Вот почему вы видите примерно n/4 этих результатов.

enter image description here

В более общем смысле вы можете решить эту проблему, используя следующую формулу:

enter image description here

Где n - количество испытаний, k - количество успешных попыток, а p - вероятность успеха.

По вашему вопросу это получается:

(10! / 5!(10 - 5)!) * (1 / 2)^5 * (1 - 1/2)^5 == 0.24609375
...