WPROWADZENIE
Standardowa talia kart zawiera 4 kolory (pik, karo kier i trefl) oraz 13 figur (2 – 10, walet, dama, król i as). Oznacza to, że w takiej talii mamy 52 karty.
Gra w karty odbywa się najczęściej w 2, 3 lub 4 osoby. Dlatego można wykonać symulację losowego przydzielania kart i obserwowania otrzymanych wyników.
Wyniki można analizować tak, jak są wyświetlone, ale można również spróbować ten proces zautomatyzować: PL Losowanie kart z talii OPIS
CIEKAWOSTKA
Prawdopodobieństwo wylosowania określonej karty z pełnej talii wynosi $\frac{1}{52}$.
Jeśli jednak chcemy obliczyć prawdopodobieństwo otrzymania zestawu kart, wówczas musimy zastosować bardziej skomplikowane obliczenia, na przykład trzeba posłużyć się kombinacjami:
$C_{n}^{k}=
\begin{pmatrix}
n\\
k
\end{pmatrix}=\frac{n!}{(n-k)! \cdot k!} $
PRZYKŁAD
Obliczymy prawdopodobieństwo otrzymania trzech dam:
- z talii wybieramy trzy karty, więc mamy $C_{52}^{3}=
\begin{pmatrix}
52\\
3
\end{pmatrix}=\frac{52!}{(52-3)! \cdot 3!}=\frac{52\cdot 51\cdot 50\cdot 49!}{49!\cdot 3\cdot 2\cdot 1}=\frac{52\cdot 51\cdot 50}{3\cdot 2\cdot 1} =22100$ możliwości - w talii są cztery damy, ale my chcemy mieć trzy, więc mamy: $C_{4}^{3}=
\begin{pmatrix}
4\\
3
\end{pmatrix}=\frac{4!}{(4-3)! \cdot 3!}=4$ możliwości - prawdopodobieństwo otrzymania trzech dam z całej talii wynosi więc: $P=\frac{4}{22100}=\frac{1}{5525}$
KOD W JĘZYKU PYTHON
import random
# Tworzenie talii kart
karty = []
for kolor in ['\u2665', '\u2666', '\u2663', '\u2660']:
for figura in range(2, 11):
karty.append((kolor, figura))
karty.append((kolor, 'J'))
karty.append((kolor, 'Q'))
karty.append((kolor, 'K'))
karty.append((kolor, 'A'))
# Tasowanie talii
random.shuffle(karty)
# Pytanie użytkownika o liczbę graczy
liczba_graczy = int(input("Ilu graczy będzie grać? "))
# Sprawdzenie, czy podana liczba graczy jest poprawna
while liczba_graczy < 2 or liczba_graczy > 4:
print("Liczba graczy musi być między 2 a 4.")
liczba_graczy = int(input("Ilu graczy będzie grać? "))
# Pytanie użytkownika, czy rozdać wszystkie karty
rozdaj_wszystkie_karty = input("Czy chcesz rozdać wszystkie karty? (t/n) ")
# Jeśli nie wszystkie karty mają być rozdane, pytanie użytkownika o liczbę kart na gracza
if rozdaj_wszystkie_karty == "n":
liczba_kart_na_gracza = int(input("Ile kart na gracza? "))
else:
liczba_kart_na_gracza = int(52 / liczba_graczy)
# Rozdanie kart graczom
karty_graczy = []
for gracz in range(liczba_graczy):
karty_graczy.append([])
for karta in range(liczba_kart_na_gracza):
karta_krotka = karty.pop()
wartosc_karty = karta_krotka[1]
kolor_karty = karta_krotka[0]
karty_graczy[gracz].append(f'{wartosc_karty}{kolor_karty}')
# Wyświetlenie kart każdego gracza
for gracz in range(liczba_graczy):
print("Gracz {}: ,{}".format(gracz + 1, ', '.join(karty_graczy[gracz])))
⬆️⬆️⬆️ Zobacz w Google Colaboratory
JAK DZIAŁA PROGRAM?
- Otrzymany wynik można zaimportować do arkusza kalkulacyjnego i dalej analizować, jakie karty wylosowano:
- Skopiuj wynik zaznaczając myszką i wciskając kombinację klawiszy Ctrl+C
- Gracz 1: ,5♣, 5♦, 2♠, A♣, 6♣, 8♦, K♣, 10♦, J♦, A♠, 4♥, 3♥, A♥, 9♣, K♦, 3♠, Q♥
- Gracz 2: ,9♦, Q♦, J♣, 10♥, 10♣, 4♣, 7♥, 4♠, A♦, 3♣, K♠, 8♠, K♥, 4♦, 6♦, 2♥, 8♣
- Gracz 3: ,8♥, Q♠, 7♣, 10♠, 6♥, 5♥, 9♠, Q♣, 2♦, 9♥, J♠, 5♠, 3♦, 7♠, J♥, 6♠, 2♣
- Otwórz Arkusz kalkulacyjny Google, możesz użyć adresu sheets.new

- Wklej zachowane w schowku dane
- w menu Edytuj > Wklej specjalnie > Tylko wartości
- lub wciskając kombinację klawiszy Ctrl + Shift + V

Aby rozdzielić karty do osobnych komórek:
- w komórce B1 sąsiadującej z pierwszym wynikiem A1 wpisz formułę: =split(A1;„,”)
- następnie chwyć myszką za prawy dolny narożnik komórki B1 w kształcie niebieskiego kółka
i przeciągnij w dół
Dodaj komentarz