Как стать автором
Обновить

Парадокс двух конвертов и способ увеличения вероятности выбрать правильный конверт

Некоторое время назад мне попалась на глаза статья, в которой шло обсуждение так называемого "Парадокса двух конвертов".
Парадокс давно уже опровергнут несколькими доказательствами и уже не сотрясает основы Вселенной.

Вкратце о его сути: двум участникам выдают по одному конверту, причем в одном конверте сумма больше, в другом — меньше. Каждый участник, после того как заглянет в конверт и ознакомится с суммой наличности, имеет возможность поменять конверт на конверт оппонента. При этом, какая сумма лежит в конверте у оппонента, участник не знает. Суть игры — сделать правильный выбор в пользу конверта с большей суммой.


Вернемся к вышеупомянутой статье про парадокс. В ней рассказывалось, что если применить стратегию «нравится сумма — не нравится», можно увеличить свои шансы на правильное решение. Я решил это проверить и немного изменить условия задачи. В частности, я рассматриваю только одного игрока.

В моем примере я создал рефери и участника шоу. Рефери берет два конверта и кладет в них деньги, причем в один конверт помещается сумма в два раза больше. Затем рефери тасует конверты и отдает их участнику шоу.

Далее я создал скрипт, который проверяет несколько сценариев. Каждый скрипт разыграл 1 миллион комбинаций конвертов.

Сценарии:
1) Участник выбирает конверт случайным образом.
2) Участник выбирает конверт случайным образом и затем делает выбор: оставлять конверт или взять другой.

Оба эти варианта закономерно вернули 50% удач и 50% неудач.

Но совсем не так себя повел вариант №3.

3) Рефери закладывает в конверт с малой суммой деньги в размере от $1 до $1 000 000. Во конверт с большой суммой рефери кладет в два раза больше денег. Таким образом, если в первом конверте $42, то в другом $84.
Участник выбирает первый конверт и смотрит его сумму. Затем он решает оставить ли себе этот конверт или поменять его на другой, руководствуясь двумя правилами:
а) Если участнику в первый раз попалась такая большая сумма, он оставляет этот конверт себе. Это чисто фиктивное правило, поскольку вполне хватает следующего условия.
б) Если среднее арифметическая сумма всех ранее получаемых денег ниже суммы в конверте, он так же оставляет этот конверт себе.

В случае если хотя бы одно правило выполнено, конверт остается у участника шоу. Иначе, он всегда выбирает другой конверт.

На одном миллионе итераций достигается стабильный результат — 76% успеха и 24% неудач. То есть, участник шоу, используя вышерасписанную стратегию, увеличивает вероятность угадывания конверта с большей суммой на 25%. При этом он ничего не знает о диапазоне сумм, и не знает сколько денег лежит во втором конверте.

Конечно, тут не так все просто. Картина начинает изменяться если мы:
а) изменим стратегию рефери: конверт с большей суммой отличается от конверта с малой суммой всего на $1.
б) уменьшим количество итераций и увеличим диапазон сумм.

И мы вновь возвращаемся к обычным 50 на 50. Я специально не выкладываю этот скрипт здесь, но поделюсь техническими данными:

1) Скрипт был написан на php, использовалась версия php 5.5.3 stable.
2) Пик использования памяти — 512кб памяти.
3) 1 млн. итераций выполнялись за 26 секунд.
4) Использовался рабочий четырехядерный компьютер неизвестной комплектации (я к нему логинюсь по ssh и руками не щупал).

Спасибо за внимание. Надеюсь, моя история по простому расследованию простой задачки была вам интересна и родит, так же как и сам парадокс, немало других интересных задач и их решений.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.