Hullun pasianssi Pythonilla

Hullun pasianssin säännöt ovat yksinkertaiset. Sekoita korttipakka ja lyö ensimmäinen kortti arvopuoli ylöspäin pöytään. Sano yksi. Jos ensimmäinen kortti on ässä, niin pasianssi ei mennyt läpi. Laita toinen kortti pöytään ja sano kaksi. Mikäli kortti on kakkonen, pasianssi ei mennyt läpi. Jatka näin kolmeentoista saakka (mikäli peli ei ole mennyt läpi jo aiemmin). Aloita taas luvusta yksi. Mikäli yksikään luettelemistasi luvuista ei vastaa pöytään lyödyn kortin arvoa, niin pasianssi on mennyt läpi.

Ongelmana on selvittää, millä todennäköisyydellä pasianssi menee läpi. Aiheesta oli jonkin verran suomenkielistä keskustelua Tiedelehden keskustelufoorumilla 2007. https://www.tiede.fi/keskustelu/24873/ketju/korttipakkalasku

Doyle, Grinstead ja Snell osoittavat artikkelissaan ”Frustration solitaire” https://math.dartmouth.edu/~doyle/docs/rank/rank.pdf, että todennäköisyys sille, että hullun pasianssi menee läpi on 

Artikkelissa on myös tarinaa kyseisen pasianssin historiasta.

Tehdään Pythonilla ohjelma, joka pelaa pasianssia muutaman kerran ja katsotaan mitä tapahtuu.

Ohjelma löytyy Repl.it-palvelusta osoitteesta https://repl.it/@MikkoRahikka/hullun-pasianssi

Klikkaa Run, niin pääset pelaamaan pasianssia.

Tein ohjelmasta myös toisen version, joka pelaa peliä ja laskee läpi  menojen määrän. 

Alla muutamia tuloksia.  Palaan tämän ohjelman toimintaan myöhemmin.

Läpi meni 16163 kertaa. Pelejä pelattiin 1000000 kertaa Prosentteina 1.6163 eli noin 1 / 61 Aikaa kului sekunteina 105.05180978775024

Läpi meni 81332 kertaa. Pelejä pelattiin 5000000 kertaa Prosentteina 1.62664 eli noin 1 / 61 Aikaa kului sekunteina 513.2468478679657

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google photo

Olet kommentoimassa Google -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.