Monty Hall - Inspiroval jsem se komentářem Jeleny a zkusil jsem to naprogramovat. Spustil jsem milion vzorků a bez změny dvěří je výhra nepřekvapivě velmi blízko 33,3% a pokud tvrdohlavě vždy po otevření jedněch volbu změním tak je na milionu vzorů výhra v cca 66,6%... Intuitivní to pro mě vážně není, ale je to asi vážně tak 🙂 Kdyby někoho zajímal na rychlo spíchnutý kód (C#): public class Program { public static void Main(string[] args) { Console.WriteLine("Monty Hall problem"); var count = 1_000_000; var success = 0; var percent = 0.0; for (int i = 0; i < count; i++) { var round = new Round(); round.SelectAnyDoor(); if (round.IsMatch()) success++; } percent = (double)success / count * 100.0; Console.WriteLine($"Without changing the door, the attempt was successful in {percent:0.00}%"); success = 0; percent = 0.0; for (int i = 0; i < count; i++) { var round = new Round(); round.SelectAnyDoor(); round.OpenNonWinnerDoor(); round.ChangeChoice(); if (round.IsMatch()) success++; } percent = (double)success / count * 100.0; Console.WriteLine($"With changing the door, the attempt was successful in {percent:0.00}%"); Console.ReadLine(); } private class Round { Random random = new Random(); public Round() { var rand = random.Next(1, 4); Doors.Single(a => a.Number == rand).IsWinner = true; } public void SelectAnyDoor() { SelectedDoor = random.Next(1, 4); } public bool IsMatch() { return Doors.Single(a => a.Number == SelectedDoor).IsWinner; } public void OpenNonWinnerDoor() { Doors.First(a => !a.IsWinner && a.Number != SelectedDoor).IsOpened = true; } public void ChangeChoice() { var newChoice = Doors.Single(a => !a.IsOpened && a.Number != SelectedDoor); SelectedDoor = newChoice.Number; } public List Doors { get; set; } = new List() { new Door(1), new Door(2), new Door(3), }; public int SelectedDoor { get; set; } } private class Door { public Door(int number) { Number = number; } public bool IsWinner { get; set; } = false; public bool IsOpened { get; set; } = false; public int Number { get; set; } } }
@alesales5816 Жыл бұрын
No, vy zpátečníci jste v koncích už dávno. Možná by neuškodilo koukat se vpřed, abyste náhodou nezakopli o bludný balvan :D
Жыл бұрын
Děkujeme za kvalitní a podnětný příspěvek do diskuse na téma matematických paradoxů.