Как улучшить решение этой проблемы Монти Холла?
Я видел сложные решения, это простое решение (для постоянного переключения) и показал результат (2/3) выигрыша при переключении, не могли бы вы сказать мне, как мой код можно отредактировать, чтобы быть лучше, если это возможно? Понятно, что когда мы видим, что вероятность выигрыша игрока при переключении составляет (2/3), то остаток для того, чтобы не переключаться, равен 1-(2/3)=(1/3), или мы можем написать код для этого.
Это описание проблемы:
en.wikipedia.org/wiki/Monty_Hall_problem
youtube.com/watch?v=4Lb-6rxZxx0
Что я уже пробовал:
int wins = 0; for (int i = 0; i < 1000000; i++) { if (alwaysSwitch()) { wins++; } } MessageBox.Show(wins.ToString()); } Random RN = new Random(); bool alwaysSwitch() { int leftGoat = -1, rightGoat = -1, winDoor = -1; switch (RN.Next(3)) { case 0: winDoor = 0; leftGoat = 1; rightGoat = 2; break; case 1: winDoor = 1; leftGoat = 0; rightGoat = 2; break; case 2: winDoor = 2; leftGoat = 0; rightGoat = 1; break; } int decision = RN.Next(3); if (leftGoat == decision) { rightGoat = -1; } if (rightGoat == decision) { leftGoat = -1; } if (winDoor == decision) { return false; } else { return true; } }
Patrice T
Дайте ссылку на сайт этой проблемы.
john1990_1
https://en.wikipedia.org/wiki/Monty_Hall_problem
https://www.youtube.com/watch?v=4Lb-6rxZxx0
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.
john1990_1
Спасибо, сделал.
Richard MacCutchan
Вы возвращаете истину, если выбор не является выигрышной дверью; разве это не должно быть наоборот? Кроме того, почему вы устанавливаете левую и правую Козлы на -1, если они выбраны, так как вы ничего не делаете с этими значениями?
Если вы предполагаете, что игрок всегда будет переключаться со своего первоначального решения, то он выберет одну из двух дверей, так как третья была открыта.