Парадокс Монти Холла РАБОТАЕТ!

Парадокс Монти Холла Описан в Википедии. На самом деле работает!!

Надо рассуждать так: Вначале есть три двери. Они делятся на две группы. Вероятность угадывания первой группы (из одной двери, выбор игрока) — 1/3. т. е. фактически, игрок ошибается в 2 случаях из 3 в своём выборе. Ведущий, открывая дверь — работает с группой из двух оставшихся дверей, сумма выигрыша которых — 2/3. И открывает всегда проигрышную дверь. И теперь, вся вероятность выигрыша группы (2/3) сосредотачивается на оставшейся двери. Но игрок выбирал проигрышную дверь в первой группе, в условиях равных вероятностей всех дверей, но не равной вероятности обеих групп! И доля выбранной двери -- как была 1/3, так и осталась. Стало быть вероятность выигрыша, если игрок поменяет дверь на оставшуюся во второй группе — составит 2/3, а если не поменяет свой выбор — то выигрыш двери игрока так и останется 1/3.

И вот моя программа -- это прекрасно подтверждает. Вероятность выигрыша без смены двери всегда -- 33%. А при смене двери -- всегда 66%. Текст программы (python3):
# -*- coding: utf8 -*-
'''
Здесь пытаемся имитировать игру Бенни-Хилла.
три двери, за одной автомобиль.
'''
import random as ранд
from time import time

ранд.seed(time())
попал=0
for i in range(0,1000000):
   маш=ранд.choice([1,2,3])
   выб=ранд.choice([1,2,3])
   if маш==выб:
      попал+=1
print(попал," из ", i+1, " вероятность= ", попал/(i+1))

попал=0
for i in range(0,1000000):
   маш=ранд.choice([1,2,3])
   выб=ранд.choice([1,2,3])
   if выб==1:
      ведущ=ранд.choice([2,3])
      '''
      Здесь и далее -- надо понимать, что дверь открытая ведущим --
      всегда зависит от вашего выбора, и от того -- где стоит 
      машина. Ведущий не может выбрать вашу дверь, и не может 
      выбрать дверь с машиной, но он всегда выбирает неправильную 
      дверь из двух оставшихся! Тем самым исключая один заведомо
      неправильный
 вариант, и увеличивая долю выигрыша оставшейся
      двери в группе, за счёт открытой.

      '''
      if маш==2:
         ведущ=3
      elif маш==3:
         ведущ=2
   elif выб==2:
      ведущ=ранд.choice([1,3])
      if маш==1:
         ведущ=3
      elif маш==3:
         ведущ=1
   elif выб==3:
      ведущ=ранд.choice([1,2])
      if маш==1:
         ведущ=2
      elif маш==2:
         ведущ=1
   if ведущ==1:
      if выб==2:
         выб=3
      elif выб==3:
         выб=2
   elif ведущ==2:
      if выб==1:
         выб=3
      elif выб==3:
         выб=1
   elif ведущ==3:
      if выб==1:
         выб=2
      elif выб==2:
         выб=1
   if маш==выб:
      попал+=1
print(попал," из ", i+1, " вероятность= ", попал/(i+1))




Комментарии

  1. Кому надо -- берите скрипт. Лицензия -- BSD-Clause-2

    ОтветитьУдалить
  2. Этот комментарий был удален администратором блога.

    ОтветитьУдалить
  3. Этот комментарий был удален администратором блога.

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Установка Yandex.Disk под OpenSUSE

Борьбы с ссылками в LibreOffice Calc