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ół