Рубрики
Без рубрики

Ошибка игрока с Python и JS

Исследуйте ошибку Gambler с Python и P5.js, моделируя последовательности монет.

Автор оригинала: Robin Andrews.

В этой статье мы собираемся изучить падение Gambler с Python и P5.js, имитируя последовательности монет.

Если я переворачиваю монету 4 раза, и вероятность его приземления головы или хвосты составляет 50% для каждого результата, что является порядком вероятности для каждой из следующих последовательностей: а) H H H T B) H H H H H C) H H T T E.G. Если вы считаете, что A, скорее всего, сопровождается B, затем C, выберите A, B, C.

Сделайте прогноз, затем нажмите Играть/Пауза кнопка, чтобы увидеть симуляцию.

Вы можете проверить код для визуализации выше на P5.js сайт Отказ

Возможно, удивительное решение заключается в том, что каждая последовательность одинаково вероятна вероятна!

Если вы получили это правильно, то хорошо сделано! Если нет, то вы только что совершили Падение игрока Отказ Не волнуйтесь, вы ни в коем случае не только в этой первоначальной оценке относительных вероятных вероятности последовательностей.

Объяснение падения игрок

Причина, по которой многие люди совершают ошибку игрока в этом и многих других ситуациях, когда вероятность участвует, заключается в том, что есть вера в то, что произошло ранее, должно повлиять на то, что происходит дальше. Однако в ситуациях, как листовая монета, это не так: каждый новый результат Независимо от других Отказ С 4 монетами есть 2 ^ 4 (16) возможные последовательности, и каждый одинаково может произойти.

Помимо заблуждения о предыдущих результатах, влияющих на следующий результат, другая вещь об этом примере, которая позволяет легко быть ошибочным, является то, что мы могли бы подумать о разных, связанных вопросах, таких как «Каковы шансы на получение 3 головы и 3 хвосты? ” То, что отличается в этих случаях, это этот заказ неважно, и есть несколько способов достижения этих комбинаций.

Ошибка игрока является лишь одним из способов, которыми люди систематически бедны при статистических рассуждениях, явление, которое становится все лучше понять, как проведено больше исследований, и осознание этих слабостей постепенно становится частью нашей культуры. Существует увлекательная книга по этой теме Даниэля Канемана под названием «Мышление быстро и медленно», которая входит в большую деталь о многих из перцепных ошибок, которые мы подлежащим образом на нашем мозге.

Как ассортимент Amazon, я зарабатываю от квалификационных покупок.

Имитация ошилии игрока с Python

Теперь для некоторых кода. Код Python ниже обеспечивает моделирование визуализации выше.

import itertools
import random
from collections import Counter

NUM_COINS = 4
NUM_FLIPS = 1000


def new_sequence(event_counter):
    seq = ""
    for i in range(NUM_COINS):
        seq += coin_flip()
    event_counter[seq] += 1


def coin_flip():
    return "T" if random.random() < 0.5 else "H"


perms = ["".join(x) for x in list(itertools.product("TH", repeat=NUM_COINS))]
event_counter = {key: 0 for key in perms}
for i in range(NUM_FLIPS):
    new_sequence(event_counter)


for k, v in event_counter.items():
    proportion = str(round(v / NUM_FLIPS * 100, 2)) + "%"
    print(k, proportion)

Несколько баллов об этом списке:

  • Использует Itertools.Продукты Как простой способ производить перестановки переворотов монет
  • Вы можете изменить конданты Num_coins и Num_flips Чтобы исследовать разные сценарии
  • Взвешенная монета может быть смоделирована путем редактирования этой линии: Верните «T», если Random.random () <0.5 еще "H"

Образец вывода из вышеупомянутого списка:

TTTT 6.4%
TTTH 6.4%
TTHT 7.2%
TTHH 4.6%
THTT 5.8%
THTH 5.6%
THHT 6.3%
THHH 6.8%
HTTT 7.2%
HTTH 5.9%
HTHT 5.1%
HTHH 6.1%
HHTT 6.7%
HHTH 6.5%
HHHT 7.1%
HHHH 6.3%

В долгосрочной перспективе ожидаемое значение относительной частоты каждой последовательности является 6,25% (1/16 * 100) Отказ Вышеуказанные значения для 1000 Испытания имеют разумно близко к этой ценности, и приблизится к ближе с большим количеством испытаний.

Счастливые вычисления!