IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Simulátor Monty-Hallova paradoxu

Jedná sa o simulátor tzv. Monty-Hallova paradoxu, čo je istý matematický pravdepodobnostné problém, ktorý naozaj vôbec nie je paradoxom. Dovolím si prezentovať niekoľko slov z wikipédie:

Naskrz poctivý moderátor umiestnil súťažné cenu - auto - za jedny z troch dverí. Za každými zo zostávajúcich dverí je cena útechy - koza. Úlohou súťažiaceho je zvoliť si jedny dvere. Potom moderátor otvorí jedny z dvoch zostávajúcich dverí, ale len tie, za ktorými je koza. Teraz má súťažiaci možnosť buď ponechať svoju pôvodnú voľbu, alebo zmeniť voľbu na zostávajúce dvere. Súťažiaci vyhráva cenu, ktorá je za dverami, ktoré si zvolil. Súťažiaci nemá žiadne predchádzajúce znalosti, ktoré by mu umožnili odhaliť čo je za dverami. Nech súťažiaci najprv zvolí dvere číslo 1. Nech moderátor otvorí dvere číslo 3, za ktorými je koza. Zvýši sa šance na výhru autá, ak súťažiaci zmení voľbu na dvere číslo 2?
Ide o to, že ak v druhom kroku zvolíte druhé dvere ako v tom prvom, máte dvojnásobnú šancu na výhru. Ľuďom sa tomuto spravidla nechce uveriť, veď predsa nakoniec rovnako vyberajú z dvoch dverí, opak je ale pravdou. Tým že pôvodne vyberáte z dvoch kôz, máte šancu 2/3 na kozu. Keď po tej moderátor druhú kozu odhalí, ste na 66% na koze a prechodom k druhým dverám dôjdete na 66% k autu. Plné vysvetlenie je v citovanom článku na wikipedii.

V aplikácii nájdete rovnakú herňu s tromi dverami a počítadlo výhier a prehier, kde si sami môžete skúsiť zahrať a uvidíte, že sa správnou stratégiou vyhráte v zhruba 66% prípadov. Ďalej môžete spustiť automatický režim, kedy za vás automat stanovenou rýchlosťou urobí stanovený počet pokusov a bude sa pri tom riadiť stanovenú stratégií.

Ovládanie je myslím intuitívne, ak budete čokoľvek potrebovať vedieť, či už o probléme či o aplikácii samotnej, stlačte tlačidlo "Info" (alebo na klávesnici F1).

Štatistiky možno z aplikácie stlačením tlačidla exportovať do textového súboru, ktorý sa nachádza v dokumentoch (predvolený priečinok). Cestu k súboru môžete zmeniť tak, že pri spustení odovzdáte validný cestu do zložky, kam chcete súbor uložiť, v prvom command line argumentu, teda napr. Cez cmd ako MontyHall.exe C:\Users\Krepsy3\Documents\Programy\test. Takto spustený program uloží štatistický súbor do priečinka test, ktorá je v zložke Programy v Dokumentoch.

Pri tvorbe aplikácie som sa snažil držať sa zásad OOP a MV. Využil som Binding (a MultiBinding), DispatcherTimer, Vyvolávanie dialógov, Read-Only Vlastnosti.

Ak máte niekto pripomienku či podnet pre vylepšenie aplikácie, napíšte to prosím určite do komentárov, môžem vydať novú verziu ;) Zdrojové kódy sú v češtine, vr. okomentovaní.

Changelog

Verzia 1.3.

  • Opravený bug, ktorý spôsoboval, že sa pri resete štatistík vynulované počet manuálne zahraných hier
  • Ak teraz pri exporte dôjde k chybe vo výpočte (napr. Kvôli pretečeniu niektoré hodnoty), v exportovanom súbore nepřibyde neúplná štatistika
  • Prepracovaná trieda Exporter, je teraz prehľadnejšie a ľahko modifikovateľná
  • Pridaná automatická detekcia používané stratégie pri manuálnom hraní
  • Pridané štatistiky (pre export) týkajúce sa pomerov medzi hrami s víťaznou as proherní stratégiou - program vypočíta očakávaný pomer (pomer vychádzajúci zo štatistiky) na základe počtov hier zahraných víťazne a proherně
  • Štatistiky sú teraz úplné, teda nematou napr. Kvôli zmene stratégie počas hrania

Verzia 1.2.i

  • Doplnené aktuálne obrázky
  • Opravený binding história auta
  • Pridaný export štatistík. Tlačidlo "Exportovať štatistiky" teraz zapíše štatistiky o vykonaných hrách do súboru Monty-Hall-Stats.txt, umiestnenom vo východiskovej zložke pre dokumenty
  • Pridaný kompletný popisok Progress Baru
  • Reset štatistík sa teraz pýta ujištovacím dialógovým oknom
  • Spustenie automatického režimu teraz zakryje všetky tlačidlá
  • Tlačidlo "Nastavenie automatického režimu" teraz zmení svoj label pri spustení automatu
  • Zdrojové kódy plne posudzované (ešte lepšie)

Verzia 1.1.

  • Korektne doplnený súbor AssemblyInfo.cs
  • Opravené zalamovanie textu v komentárov textblocku
  • Pridané dve nové štatistiky - pomer medzi výhrami / prehrami a históriu umiestnenie autá
  • Pridaný Progress bar pre postup automatu
  • Pridané tooltipy k väčšine kontroliek
  • Pridaný uvítací text, ktorý sa moderátorovom komentári zobrazia po spustení aplikácie
  • Stlačenie klávesu F1 teraz vyvolá info okno
  • Upravený informačný text
  • Upravená vzájomná pozícia niektorých elementov
  • Zdrojové kódy plne okomentované

Galéria


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 147x (733.84 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C#

 

Všetky články v sekcii
Zdrojákoviště C # .NET - Okenné aplikácie WPF
Program pre vás napísal krepsy3
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
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