WPROWADZENIE
Grupa 20 uczni贸w pewnej postanowi艂a zrobi膰 sobie prezent na Miko艂ajki. Ka偶da osoba napisa艂a na kartce swoje imi臋 (unikalne), wszystkie kartki zosta艂y umieszczone w pude艂ku, po czym ka偶dy kolejno losowa艂 jedn膮 kartk臋.
Jakie jest prawdopodobie艅stwo, 偶e podczas losowania prezent贸w przynajmniej jedna osoba wylosuje siebie?
Problem ten rozwi膮zuje si臋 z wykorzystaniem podsilni – liczbie takich permutacji aby 偶aden element nie sta艂 na swoim pierwotnym miejscu.
Silni臋 oznaczamy wykrzyknikiem, np $5!= 5\cdot 4\cdot 3\cdot 2\cdot 1$. Podsilni臋 te偶 oznaczamy wykrzyknikiem, ale stawiamy go przed liczb膮, np $!5$.
Zatem:
Dla 20 os贸b prawdopodobie艅stwo, 偶e nikt nie wylosuje siebie to:
$P(A) = \frac{!20}{20!} \approx 36\%$
Czyli prawdopodobie艅stwo, 偶e przynajmniej jedna osoba wylosuje siebie to:
$P(A’) = 1-\frac{!20}{20!} \approx 64\%$
Zobacz przyk艂ad podsilni w arkuszu kalkulacyjnym: Podsilnia
WI臋cej o omawianym problemie przeczytasz:
KOD W J臉ZYKU PYTHON
import random
n = 16
num_trials = 100
count = 0
for i in range(num_trials):
students = list(range(1, n + 1))
random.shuffle(students)
for j in range(n):
if students[j] == j + 1:
print(f'Pr贸ba {i+1}, osoba {j+1} wylosowa艂a samego siebie')
count += 1
break
print(f'\nW {count} z {num_trials} pr贸b, 偶e kto艣 wylosowa艂 samego siebie.')
猬嗭笍猬嗭笍猬嗭笍 Zobacz w Google Colaboratory
JAK DZIA艁A PROGRAM?
- Zaczynamy od importu biblioteki random
- Ustalamy sta艂膮 liczb臋 uczni贸w w klasie na 20
- Ustalamy liczb臋 pr贸b symulacji na 100
- W p臋tli for (dla ka偶dej pr贸by) program tworzy list臋 uczni贸w za pomoc膮 funkcji range i list() oraz tasuje j膮 za pomoc膮 funkcji shuffle().
- W drugiej p臋tli for (dla ka偶dego ucznia) program sprawdza, czy numer wylosowany dla danego ucznia odpowiada jego w艂asnemu numerowi, a nast臋pnie wypisuje informacj臋, 偶e taka sytuacja wyst膮pi艂a.
- W przypadku znalezienia trafienia, program zwi臋ksza warto艣膰 zmiennej count (liczba trafie艅) i przerywa p臋tl臋, aby nie sprawdza膰 dalszych uczni贸w. Nie interesuje nas ju偶, czy inny ucze艅 te偶 siebie wylosuje oraz przyspiesza dzia艂anie ca艂ego programu.
- Na ko艅cu program wypisuje informacj臋 o liczbie trafie艅 w stosunku do liczby pr贸b.
Dodaj komentarz