Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Simulátor Monty-Hallova paradoxu

Jedná se o simulátor tzv. Monty-Hallova paradoxu, což je jistý matematický pravděpodobnostní problém, který doopravdy vůbec není paradoxem. Dovolím si prezentovat několik slov z wikipedie:

Veskrze poctivý moderátor umístil soutěžní cenu – auto – za jedny ze tří dveří. Za každými ze zbývajících dveří je cena útěchy – koza. Úkolem soutěžícího je zvolit si jedny dveře. Poté moderátor otevře jedny ze dvou zbývajících dveří, ale jen ty, za nimiž je koza. Teď má soutěžící možnost buď ponechat svou původní volbu, nebo změnit volbu na zbývající dveře. Soutěžící vyhrává cenu, která je za dveřmi, které si zvolil. Soutěžící nemá žádné předchozí znalosti, které by mu umožnily odhalit co je za dveřmi. Nechť soutěžící nejprve zvolí dveře číslo 1. Nechť moderátor otevře dveře číslo 3, za kterými je koza. Zvýší se šance na výhru auta, pokud soutěžící změní volbu na dveře číslo 2?

Jedná se o to, že pokud ve druhém kroku zvolíte druhé dveře než v tom prvním, máte dvojnásobnou šanci na výhru. Lidem se tomuto zpravidla nechce uvěřit, vždyť přece nakonec stejně vybírají ze dvou dveří, opak je ale pravdou. Tím že původně vybíráte ze dvou koz, máte šanci 2/3 na kozu. Když po té moderátor druhou kozu odhalí, jste na 66% na koze a přechodem k druhým dveřím dojdete na 66% k autu. Plné vysvětlení je v citovaném článku na wikipedii.

V aplikaci najdete stejnou hernu se třemi dveřmi a počítadlo výher a proher, kde si sami můžete zkusit zahrát a uvidíte, že se správnou strategií vyhrajete ve zhruba 66% případů. Dále můžete spustit automatický režim, kdy za vás automat stanovenou rychlostí udělá stanovený počet pokusů a bude se při tom řídit stanovenou strategií.

Ovládání je myslím intuitivní, pokud budete cokoli potřebovat vědět, ať už o problému či o aplikaci samotné, stiskněte tlačítko "Info" (nebo na klávesnici F1).

Statistiky lze z aplikace stisknutím tlačítka exportovat do textového souboru, který se nachází v dokumentech (výchozí složka). Cestu k souboru lze změnit tak, že při spuštění předáte validní cestu do složky, kam chcete soubor uložit, v prvním command line argumentu, tedy např. přes cmd jako MontyHall.exe C:\Users\Krepsy3\Documents\Programy\test. Takto spuštěný program uloží statistický soubor do složky test, která je ve složce Programy v Dokumentech.

Při tvorbě aplikace jsem se snažil držet se zásad OOP a MV. Využil jsem Binding (a MultiBinding), DispatcherTimer, Vyvolávání dialogů, Read-Only Vlastnosti.

Máte-li někdo připomínku či podnět pro vylepšení aplikace, napište to prosím určitě do komentářů, mohu vydat novou verzi ;) Zdrojové kódy jsou v češtině, vč. okomentování.

Changelog

Verze 1.3.i

  • Opraven bug, který způsoboval, že se při resetu statistik nevynuloval počet manuálně zahraných her
  • Pokud nyní při exportu dojde k chybě ve výpočtu (např. kvůli přetečení některé hodnoty), v exportovaném souboru nepřibyde neúplná statistika
  • Přepracována třída Exporter, je nyní přehlednější a snadno modifikovatelná
  • Přidána automatická detekce používané strategie při manuálním hraní
  • Přidány statistiky (pro export) týkající se poměrů mezi hrami s vítěznou a s proherní strategií - program vypočte očekávaný poměr (poměr vycházející ze statistiky) na základě počtů her zahraných vítězně a proherně
  • Statistiky jsou nyní úplné, tedy nematou např. kvůli změně strategie během hraní

Verze 1.2.i

  • Doplněny aktuální obrázky
  • Opraven binding historie auta
  • Přidán export statistik. Tlačítko "Exportovat statistiky" nyní zapíše statistiky o provedených hrách do souboru Monty-Hall-Stats.txt, umístěném ve výchozí složce pro dokumenty
  • Přidán kompletní popisek Progress Baru
  • Reset statistik se nyní ptá ujištovacím dialogovým oknem
  • Spuštění automatického režimu nyní zakryje všechna tlačítka
  • Tlačítko "Nastavení automatického režimu" nyní změní svůj popisek při spuštění automatu
  • Zdrojové kódy plně okomentovány (ještě lépe)

Verze 1.1.i

  • Korektně doplněn soubor AssemblyInfo.cs
  • Opraveno zalamování textu v komentářovém textblocku
  • Přidány dvě nové statistiky - poměr mezi výhrami/prohrami a historii umístění auta
  • Přidán Progress bar pro postup automatu
  • Přidány tooltipy k většině kontrolek
  • Přidán uvítací text, který se v moderátorově komentáři zobrazí po spuštění aplikace
  • Stisknutí klávesy F1 nyní vyvolá info okno
  • Upraven informační text
  • Upravena vzájemná pozice některých elementů
  • Zdrojové kódy plně okomentovány

Galerie

Program byl vytvořen v roce 2016.

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 147x (733.84 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

Všechny články v sekci
Zdrojákoviště C# .NET - Okenní aplikace WPF
Program pro vás napsal krepsy3
Avatar
Uživatelské hodnocení:
2 hlasů
Autor se učí programovat zde na itnetworku, zatím zejména jazyk C#. Znalosti chce mít ucelené, proto při vývoji aplikací studuje potřebné funkce do hloubky. Vyzná se v programování ve hrách, jako je Minecraft či Ricochet.
Aktivity