de Méré paradoxon

https://carnotcycle.files.wordpress.com/2017/11/mere01.jpg?w=614&h=458

Chevalier de Méré (Antoine Gombaud 1607-1684) nagy szerencsejátékos volt. Azt találta, hogy érdemes arra fogani, hogy 4 kockadobásból legalább az egyik 6-os lesz. Helytelenül, arányokra hivatkozva azt gondolta, hogy érdemes arra fogadni, hogy 24-szer feldobva 2 kockát lesz egy dupla 6-os. A tapasztalatai azonban ezt nem igazolták!

1654-ben levelet írt Blaise Pascalnak (1623-1662), aki megosztotta e paradoxonnak látszó kérdést Pierre Fermat-val (1607-1665). Megoldották e problémát, és ezt a pillanatot tekintik sokan a valószínűségszámítás kezdetének.

Szimuláció 4 kockával

Futassuk le a következő kódot többször is! Igaznak tűnik, hogy a relatív gyakoriság többször nagyobb 0.5-nél mint ahányszor kisebb, vagyis hogy érdemes arra fogadni, hogy lesz a 4 dobás közt legalább egy 6-os?

Valószínűség 4 kockával

Számítsuk ki az összes eset felsorolásával és a kedvező esetek megszámolásával annak valószínűségét, hogy 4 kockadobás közt lesz legalább egy 6-os.

A következő kód majdnem azonos az előzővel, a különbség futás közben mégis nagy. Listaértelmezés esetén legenerálódik az összes lehetséges eredmény egy listába, míg a következő generátorkifejezés használatakor nem keletkezik lista, minden számnégyest csak akkor számít ki, amikor a for ciklusban szükség van rá:

Hasonlítsuk össze az lst és a gen változók tartalmát:

Példa: Írjunk egy teljes programot, az előző kódrészleteket egy-egy függvénybe téve, majd meghívva a main() függvényből! Mentsük el e kódot egy külön fájlba, és futassuk terminálból!

A valószínűség e feladatban az összes eset felsorolása nélkül is meghatározható egy kis matekkal:

A programozási tipp: Több egymásba ágyazott lista eredménye megkapható az itertools modul product függvényével. Pl. a 4 kockadobás összes lehetséges esete listába tehető a következő kóddal:

Szimuláció 24-szer 2 kockával

Az utóbbi olyan hatalmas szám, hogy 24-szer 2 kockadobás lehetséges kimeneteleinek felsorolása lehetetlen. Itt segíthet a matematika:

Gyakorló feladat: Írjunk a fentihez hasonló teljes programot a 24-szer feldobott 2 kocka esetére!

Az általános sablon a feladatok (így ennek a feladatnak a) megoldásához:

Rizikó, más néven Risk (Határidő 2021-09-18 20:00)

A Rizikó nevű társasjátékban egyszerre egy játékos maximum három katonájával tud támadni, míg a védekező játékos legföljebb kettővel tud védekezni. Pontosan három támadó és két védő esetén az összecsapás a következőképpen zajlik. A támadó játékos három piros kockával míg a védekező játékos két kék kockával dob. Ezután összehasonlítjuk a támadó és a védő legnagyobb dobását. A kisebb érték birtokosa veszít egy katonát, a döntetlen a védőnek kedvez, vagyis ekkor a támadó veszít egyet. Ezután a két fél második legnagyobb dobását is összehasonlítjuk ugyanilyen módon. Így az összecsapásnak három kimenetele lehet: a támadó veszít két katonát, döntetlen, azaz mindkét fél veszít 1-1 katonát, a védő veszít két katonát.

A teamsben feltöltendő megoldás egy .py kiterjesztésű szövegfájl legyen, azaz egy parancssorból futtatható Python3 kód. A kód elején következő szöveg álljon:

 """
 E programot magam kódoltam, nem másoltam vagy 
 írtam át más kódját, és nem adtam át másnak.
 Aláírás Teljes Névvel
 """