Lotto w Pythonie
Losowaniu Lotto (dawniej Dużemu Lotkowi) towarzyszą emocje związane z wysokimi nagrodami. Wystarczy poprawnie wytypować 6 liczb z 49, a można stać się milionerem. Szansa na szybkie wzbogacenie się kusi wielu..
Losowania są w naszym kraju obecne już od 1957 roku i w tym czasie wylosowano 6168 „szóstek”. Najwyższą wygraną była kwota wynosząca ponad 36 000 000 zł. Czytając to, można się zacząć przekonywać do tego, że gra w Totka się po pewnym czasie powinna opłacić. W tym artykule postaramy się rozstrzygnąć ten problem, korzystając z mocy obliczeniowej i skryptu w Pythonie.
Testowanie szczęścia
Grę w Lotto da się łatwo zaprogramować. Stworzony poniżej skrypt jest w stanie zasymulować dowolną liczbę losowań i przeanalizować je pod kątem zdobytych w nich wygranych. Program wypisze wszystkie wyniki losowań, a następnie poda, ile trafiliśmy szóstek, piątek, czwórek i trójek. Pod tymi danymi ukaże się również informacja, ile zainwestowaliśmy w zakup wszystkich zakładów, ile łącznie wygraliśmy pieniędzy i na koniec – jaki jest nasz bilans zysków i strat.
Kod w Pythonie
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import random def wygrane(szostka, lista): wynik = 0 for i in lista: if i in szostka: wynik += 1 return wynik random.seed() #Do samodzielnego uzupełnienia------------------- liczby = [6, 10, 12, 22, 36, 49] #Tu wpisujemy prognozowaną szóstkę n = 100000 #Liczba losowań kupon = 3 #Cena jednego zakładu trojka = 24 #Wygrana za trojke czworka = 188 #Wygrana za czworke piatka = 7000 #Wygrana za piatke szostka = 5000000 #Wygrana za szostke #---------------------------- wins = {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0} for i in range(n): losowanie = sorted(random.sample(range(1, 50), 6)) wyniki = wygrane(liczby, losowanie) print("Wylosowano liczby {}. Trafiłeś {}".format(losowanie, wyniki)) wins[wyniki] += 1 inwest = n * kupon wygrana = wins[3]*trojka + wins[4]*czworka + wins[5]*piatka + wins[6]*szostka print("*"*30) print("Podsumowanie") print("Zera: {} \n" "Jedynki: {} \n" "Dwójki: {}\n" "Trójki: {}\n" "Czwórki: {}\n" "Piątki: {}\n" "Szóstki: {}".format(wins[0], wins[1], wins[2], wins[3], wins[4], wins[5], wins[6])) print("*"*30) print("Zainwestowałeś {} złotych, " "a wygrałeś {} złotych. " "Twój bilans to {} zł.".format(inwest, wygrana, wygrana - inwest)) |
W skrypcie znajduje się fragment opisany jako #Do samodzielnego uzupełnienia
. Warto pozmieniać dane tam zawarte i obserwować, co dzieje się z wynikami. Można zmieniać typowaną szóstkę, liczbę losowań, cenę kuponu, czy choćby wartości wygranych za każdą liczbę trafionych kul.
Wnioski z losowań
Poniżej zostaje zaprezentowany przykładowy wynik 100 000 losowań. By dać ogląd na sytuację, to gdyby trzy razy w tygodniu – we wtorek, w czwartek i w sobotę skreślać po sześć zakładów, to taka liczba losowań zajęłaby 106 lat. Tu będą to 3 minuty.
Z powyższej grafiki widać, że zainwestowanie tak dużej sumy pieniędzy na zakup 100 000 zakładów nie opłaciło się – stracono na losowaniach 232 468 złotych. Oczywiście wystarczyłoby trafić jedną szóstkę i sytuacja by się diametralnie zmieniła. Tu jednak nie było na tyle szczęścia i z wyższych wygranych, trafiono tylko jedną piątkę.
Czy się opłaca?
Na pytanie postawione w nagłówku artykułu nie da się jednoznacznie odpowiedzieć. Prawdopodobieństwo wygrania szóstki jest minimalne i wypada powiedzieć, że gra w Lotto będzie generowała wyłącznie straty. Jednak, każde losowanie zawsze zwróci nam jedną szóstkę, która właśnie może być tą naszą. Dlatego trzeba być też świadomym faktu, iż każdy kto w trafił szóstkę w życiu nie powie, że nie opłacało mu się grać.