Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
В *оригинальных* условиях. Я вот сначала (уже разобрался) не понял на хрена там это условие и решил его просто выбросить 27.08.09 20:38 Число просмотров: 1546
Автор: amirul <Serge> Статус: The Elderman
|
|
<miscellaneous>
|
Парадокс Монти-Холла оказывается более парадоксален, чем мне представлялось раньше 27.08.09 07:18
Автор: amirul <Serge> Статус: The Elderman Отредактировано 27.08.09 07:21 Количество правок: 1
|
На всякий случай, если кто не знает (есть такие вообще?) приведу условие:
Представьте, что вы стали участником игры, в которой вы находитесь перед тремя дверями. Ведущий, о котором известно, что он честен, поместил за одной из дверей автомобиль, а за двумя другими дверями — по козе. У вас нет никакой информации о том, что за какой дверью находится. Ведущий говорит вам: «Сначала вы должны выбрать одну из дверей. После этого я открою одну из оставшихся дверей, за которой находится коза. Затем я предложу вам изменить свой первоначальный выбор и выбрать оставшуюся закрытую дверь вместо той, которую вы выбрали вначале. Вы можете последовать моему совету и выбрать другую дверь, либо подтвердить свой первоначальный выбор. После этого я открою дверь, которую вы выбрали, и вы выиграете то, что находится за этой дверью.»
Вы выбираете дверь номер 1. Ведущий открывает дверь номер 3 и показывает, что за ней находится коза. Затем ведущий предлагает вам выбрать дверь номер 2. Увеличатся ли ваши шансы выиграть автомобиль, если вы последуете его совету ?
Задача на первый взгляд кажется контринтуитивной, но даже после того, как я ее вроде бы как понял, я осознал, что она еще более контритуитивна, чем мне представлялось ранее. Я даже провел "численный эксперимент" (набросал программу на коленке):
#include <cstdlib>
#include <iostream>
int
select(int a, int b) {
int c;
do {
c = rand() % 3;
} while (c == a|c == b);
return c;
}
int
main() {
int cluelessHost = 0;
for (int cluelessHost = 0; cluelessHost <= 1; cluelessHost++) {
double total = 0, won = 0;
for (int i = 0; i < 1e6; i++) {
int prize = rand() % 3;
int firstTry = rand() % 3;
int opened;
if (cluelessHost) {
opened = select(firstTry, -1);
if (opened == prize)
continue;
} else {
opened = select(firstTry, prize);
}
int secondTry = select(firstTry, opened);
if (secondTry == prize)
won++;
total++;
}
std::wcout << won / total << std::endl;
}
return 0;
} ---
В данном случае мне плевать на эффективность, если что ;-)
Если вдруг непонятно, моделируются два варианта:
1. Ведущий знает где приз и открывает в любом случае козу
2. Ведущий не имеет понятия, что находится за дверьми, случайно открывает одну из них и ЕСЛИ ТАМ КОЗА можно продолжить. Если же там автомобиль, то игра заканчивается проигрышем и никакого выбора нам не естественно не предлагают.
Вот я уже полдня не могу понять в чем же принципиальная разница между намеренным открытием козы и случайным открытием ТОЙ ЖЕ козы.
|
|
Действительно более парадоксален ;-) 28.08.09 13:16
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
|
В википедии очень толково наглядно объяснено (пример со 100 дверями и таблица). После чего я понял, что раньше его не до конца понимал ;-)
Википедия
|
|
В условиях задачи ведущий знает "что" и за какой дверью. 27.08.09 13:16
Автор: Den <Денис Т.> Статус: The Elderman
|
|
| |
В *оригинальных* условиях. Я вот сначала (уже разобрался) не понял на хрена там это условие и решил его просто выбросить 27.08.09 20:38
Автор: amirul <Serge> Статус: The Elderman
|
|
|
По-моему - то же. 27.08.09 11:45
Автор: Zef <Alloo Zef> Статус: Elderman
|
После того, как ведущий "показал козу", вероятность выигрыша, чего бы он не плел - 1/2. При этом, абсолютно не важно, знает ведущий, где машина, или нет - главное, что игрок это не знает.
Разве, что по глазам ведущего угадать, врет он илинет, указывая на дверь, но в условия задачи это не входит...
|
| |
Запусти программу :-) 27.08.09 20:40
Автор: amirul <Serge> Статус: The Elderman
|
> После того, как ведущий "показал козу", вероятность > выигрыша, чего бы он не плел - 1/2. При этом, абсолютно не Нет
> важно, знает ведущий, где машина, или нет - главное, что > игрок это не знает. Нет
> Разве, что по глазам ведущего угадать, врет он илинет, > указывая на дверь, но в условия задачи это не входит... Ведущий абсолютно честный. По условию задачи.
|
|
У тебя — никакой ;) 27.08.09 10:08
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 27.08.09 10:44 Количество правок: 1
|
Subj, потому что твоя программа при случайном открытии выиграша ведущим пропускает цикл, как будто ничего не произошло. Т.е. несмотря на следущую итерацию цикла, отношение total/won не меняется.
Т.е. в статистику у тебя входят что в первом, что во втором случае только "удачные" выборы ведущего, а неудачные выборы слепы для статистики.
|
| |
А ты ее запусти :-) 27.08.09 20:37
Автор: amirul <Serge> Статус: The Elderman
|
> Subj, потому что твоя программа при случайном открытии > выиграша ведущим пропускает цикл, как будто ничего не > произошло. Т.е. несмотря на следущую итерацию цикла, Так и было задумано. Так как мы по определению пытаемся определить (:-) ) необходимость смены выбора, ЕСЛИ НАМ ПРЕДЛАГАЮТ. Если ведущий открывает приз - перевыбрать нам естественно не предлагают
> отношение total/won не меняется. Вот именно так я и думал.
> Т.е. в статистику у тебя входят что в первом, что во втором > случае только "удачные" выборы ведущего, а неудачные выборы > слепы для статистики. Не удачные, а имеющие смысл. В этом и есть вторая контринтуитивность парадокса.
|
| | |
:)) [upd] 27.08.09 21:24
Автор: Den <Денис Т.> Статус: The Elderman Отредактировано 27.08.09 21:29 Количество правок: 2
|
Меня всегда порожало упорство некоторых ученых-теоретиков найти черную кошку в черной комнате, где этой кошки нет.
Киллометровые выкладки формул, доказательства с пеной у рта, обсуждения на консилиумах... ппц! :)))))
А все просто!
После каждого выбора необходимо определить шанс от полного шанса - 100%. То есть:
При первом условии 100%, что за одной из трех дверей автомобиль (100% / 3 = 33.33%). После изменения - 100%, что за одной из двух дверей автомобиль (100% / 2 = 50%). Вот и все... Где тут "парадокс"?
[upd]
Помнится, Энштейн любил подшучивать над математиками подобными "парадоксами".
|
| | | |
Если ведущий знает что за дверьми и открывает всегда "козу", вероятность выигрыша после смены выбора ~66% 27.08.09 21:44
Автор: amirul <Serge> Статус: The Elderman
|
> А все просто! Все действительно просто. Но только после того, как поймешь свою ошибку :-)
> При первом условии 100%, что за одной из трех дверей > автомобиль (100% / 3 = 33.33%). После изменения - 100%, что > за одной из двух дверей автомобиль (100% / 2 = 50%). Вот и > все... Где тут "парадокс"? Если не знает, открывает наугад и, в случае если открыта коза, дает возможность сменить выбор - вероятность угадать - 50%. Такие дела.
Запусти программу - проверь :-)
Можешь даже поискать ошибку в программе (она специально написана как можно примитивнее, чтобы исключить возможность ошибки в реализации).
> [upd] > Помнится, Энштейн любил подшучивать над математиками > подобными "парадоксами". Да это не "парадокс", а вполне себе парадокс. Имеет единственное и однозначное решение, формулируется очень просто, но при этом ПОЛНОСТЬЮ контринтуитивен.
|
| | | | |
Ага! Вот только нужно понять, что ведущий увеличивает твой... [fix2] [upd] 27.08.09 22:09
Автор: Den <Денис Т.> Статус: The Elderman Отредактировано 29.08.09 07:09 Количество правок: 6
|
> > А все просто! > Все действительно просто. Но только после того, как поймешь > свою ошибку :-)
Ага! Вот только нужно понять, что ведущий увеличивает твой "полный шанс" относительно трех дверей со 100% до 150%, т.е. на 1/2 от 3/3 => 3/3+3/3*1/2=3/2 - "полный шанс" относительно трех дверей при исключении одной из них. :)) В таком случае, действительно 1/3*3/2=1/2
Вот так-то!
[upd]
Я был неправ! :))
Провел эксперимент на 10тыс записях сгенерированных с заданными условиями и получил ~66.66% (точнее 67.25% на конкретном наборе). Проанализировав набор записей, понял, где ошибался и нашел очень простое объяснение:
Шанс угадывания "выигрышной" двери с первого раза = 1/3, соответственно, шанс, что "выигрышной" является одна из оставшихся (невыбранных) дверей = 2/3. После того, как ведущий открывает одну, заведомо "проигрышную" дверь из невыбранных, шанс, что за второй невыбранной дверью находится выигрыш, повышается до 2/3.
|
| | | | | |
Хоть тресни, не понял, в чем парадокс! 28.08.09 05:14
Автор: Zef <Alloo Zef> Статус: Elderman
|
> Ага! Вот только нужно понять, что ведущий увеличивает твой > "полный шанс" относительно трех дверей со 100% до 150%, > т.е. на 1/2 от 3/3 => 3/3+3/3*1/2=3/2 - "полный шанс" > относительно трех дверей при исключении одной из них. :)) В > таком случае, действительно 1/3*3/2=1/2 > Вот так-то!
До сих пор я подозревал, что ошибся каким-то @$разом в этом утверждении и искал, где подстава, наталкивающая на эту ошибку. Но, раз подставы нет, то и парадокса - то же. Все видно сразу, с первого взгляда.
|
|
|