WPROWADZENIE
Lotto to polska loteria, która polega na tym, że:
- kupujemy los za 3 zł, na którym skreślamy 6 z 49 liczb (wyboru liczb możemy dokonać również automatycznie – metodą chybił-trafił)
- podczas oficjalnego losowania transmitowanego w telewizji na żywo losowanych jest również 6 liczb z 49,
- stopień wygranej zależy od ilości trafionych przez nas liczb:
- 0 trafień – przegrana,
- 1 trafienie – przegrana,
- 2 trafienia – przegrana,
- 3 trafienia – wygrana stała, np 25 zł,
- 4 trafienia – wygrana zależna od ilości innych wygranych w losowaniu – około kilkaset złotych,
- 5 trafień – wygrana zależna od ilości innych wygranych w losowaniu – około kilka tysięcy złotych,
- 6 trafień – wygrana zależna od ilości innych wygranych w losowaniu – najniższa gwarantowana kwota do podziału to 2 mln złotych,
Prawdopodobieństwo wygranej obliczamy używając kombinacji, które pozwalają nam określić liczbę k-elementowych podzbiorów w n-elementowym zbiorze.
$C_{n}^{k}= \begin{pmatrix}
n\\
k
\end{pmatrix} $
Liczba 6-elementowych podzbiorów z 49-elementowego zbioru to:
$C_{49}^{6}=
\begin{pmatrix}
49\
6
\end{pmatrix}=\frac{49!}{(49-6)! \cdot 6!} \frac{49\cdot 48\cdot 47\cdot 46\cdot 45\cdot 44\cdot 43!}{43! \cdot 6\cdot 5\cdot 4\cdot 3\cdot 2}=13983816$
To oznacza, że prawdopodobieństwo wylosowania “szóstki” wynosi:
$\frac{1}{13 983 816} \approx 7,15 \cdot 10^8 \approx 0.000006%$
Wykonaj symulację losowań Lotto.
- podaj po kolei sześć liczb od 1 do 49,
- zdecyduj, ile symulacji losowań wykonać.
KOD W JĘZYKU PYTHON
import random
# pobranie liczb użytkownika
uzytkownik = []
numery = ["pierwszą", "drugą", "trzecią", "czwartą", "piątą", "szóstą"]
for i in range(6):
while True:
liczba = int(input(f"Podaj {numery[i]} liczbę z zakresu 1-49: "))
if 1 <= liczba <= 49:
if liczba in uzytkownik:
print(" >>> Ta liczba została już podana, podaj inną.")
else:
uzytkownik.append(liczba)
break
else:
print(" >>> Nieprawidłowa liczba, podaj inną.")
# pobranie liczby losowań
liczba_losowan = int(input("Ile losowań chcesz wykonać? "))
# przeprowadzenie losowań i sprawdzenie trafień
trafienia = {3: 0, 4: 0, 5: 0, 6: 0}
for _ in range(liczba_losowan):
losowe = set(random.sample(range(1, 50), 6))
trafionych = len(set(uzytkownik) & losowe)
if trafionych in trafienia:
trafienia[trafionych] += 1
# wyświetlenie wyników
for k, v in trafienia.items():
slowo = "trafienia" if k != 1 else "trafienie"
print(f"Liczba {slowo} {k}: {v}")
⬆️⬆️⬆️ Zobacz w Google Colaboratory
JAK DZIAŁA PROGRAM?
- Importujemy bibliotekę random, która umożliwia nam losowanie liczb.
- Tworzymy pustą listę użytkownika, która będzie przechowywała liczby podane przez użytkownika.
- Pętla for pobiera 6 liczb od użytkownika i sprawdza, czy każda z nich jest liczbą całkowitą z przedziału od 1 do 49, a następnie dodaje ją do listy użytkownika. Jeśli liczba jest nieprawidłowa lub została już podana, program wypisuje odpowiedni komunikat i pyta ponownie.
- Następnie użytkownik podaje liczbę losowań, jaką chce przeprowadzić. pisuje „trafienie” zamiast „trafienia”.
- Program tworzy słownik trafienia z kluczami od 3 do 6, które reprezentują liczbę trafionych liczb. Każde losowanie składa się z wygenerowania 6 losowych liczb z przedziału od 1 do 49, porównania ich z liczbami podanymi przez użytkownika i zliczenia trafień. W przypadku trafienia od 3 do 6 liczb, program zwiększa wartość odpowiedniego klucza w słowniku trafienia o 1.
- Program wyświetla ilość trafień dla trójek, czwórek, piątek i szóstek. W przypadku, gdy liczba trafień jest równa 1, program wypisuje “trafiona” a nie “trafionych”.
Dodaj komentarz