Tehetséggondozás az informatikában
Három kocka, több kocka
A Cardano, illetve Galilei által is vizsgált feladatban három kockával
dobunk, s azt vizsgáljuk, mekkora eséllyel kapjuk a lehetséges összegeket.
Átírhatnánk mechanikusan az előző programot, de most általánosítsunk: a
felhasználó fogja megadni meg a kockák számát is.
import random
def ndice():
print('\nn kockával dobunk, hányszor kapjuk a lehetséges összegeket?\n')
k= int(input('Hány kockával dobjunk? '))
n= int(input('Hányszor dobjunk? '))
db= [0]*(6*n+1)
dsum= 0
print()
for i in range(n):
d= 0
for j in range(k):
d+= random.randrange(6)+1
db[d]+= 1
dsum+= d
print("%8s%8s%8s" % ('n', 'összeg', 'átlag'))
print("%8i%8i%8.5f" % (n, dsum, dsum/n))
print()
print("%-16s" % ('összeg:'), end='')
for i in range(k, 6*k+1):
print("%8i" % (i), end='')
print()
print("%-16s" % ('esetszám:'), end='')
for i in range(k, 6*k+1):
print("%8i" % (db[i]), end='')
print()
print("%-16s" % ('gyakoriság:'), end='')
for i in range(k, 6*k+1):
print(" %5.2f%%" % (db[i]/n*100), end='')
print()
print("%-16s" % ('6k-szor:'), end='')
for i in range(k, 6*k+1):
print(" %6.3f" % (db[i]/n*6**k), end='')
print('\n')
for i in range(k, 6*k+1):
print('%2i: %s' % (i, 'X'*round(db[i]/n*480)))
ndice()
k=3 esetén egy kimenet:
n kockával dobunk, hányszor kapjuk a lehetséges összegeket?
Hány kockával dobjunk? 3
Hányszor dobjunk? 1000000
n összeg átlag
10000001049988710.49989
összeg: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
esetszám: 4611 13945 27809 46165 69241 97397 116076 124854 124819 115772 97369 69314 46353 27868 13823 4584
gyakoriság: 0.46% 1.39% 2.78% 4.62% 6.92% 9.74% 11.61% 12.49% 12.48% 11.58% 9.74% 6.93% 4.64% 2.79% 1.38% 0.46%
6k-szor: 0.996 3.012 6.007 9.972 14.956 21.038 25.072 26.968 26.961 25.007 21.032 14.972 10.012 6.019 2.986 0.990
3: XX
4: XXXXXXX
5: XXXXXXXXXXXXX
6: XXXXXXXXXXXXXXXXXXXXXX
7: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
11: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
12: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
13: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
14: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
15: XXXXXXXXXXXXXXXXXXXXXX
16: XXXXXXXXXXXXX
17: XXXXXXX
18: XX
Ahogy a 6
3-, azaz 216-szoros eredményekből látszik, itt az eloszlást
tükröző törtek számlálója már összetettebb képet mutat, mint az előző
esetben (nem mellesleg az is kitűnik ezekből, hogy a 9-et alighanem 25/216,
a 10-et pedig 27/216 valószínűséggel kapjuk – úgy gondolhatjuk, az utóbbi
érdemben nagyobb, de ahogy a korábban hivatkozott cikkben olvasható, ennek
megtapasztalásához igen nagy számú kísérletet kell végrehajtani).
Végül lássunk egy szépen kisimult eloszlásfüggvényt (24 kockával és 1000000
dobással):
58: X
59: X
60: X
61: XX
62: XXX
63: XXXX
64: XXXXX
65: XXXXXXX
66: XXXXXXXX
67: XXXXXXXXXXX
68: XXXXXXXXXXXXXX
69: XXXXXXXXXXXXXXXXXX
70: XXXXXXXXXXXXXXXXXXXXXX
71: XXXXXXXXXXXXXXXXXXXXXXXXXX
72: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
73: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
74: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
75: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
76: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
77: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
78: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
79: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
80: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
81: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
82: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
83: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
84: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
85: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
86: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
87: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
88: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
89: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
90: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
91: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
92: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
93: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
94: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
95: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
96: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
97: XXXXXXXXXXXXXXXXXXXXXXXXXX
98: XXXXXXXXXXXXXXXXXXXXX
99: XXXXXXXXXXXXXXXXXX
100: XXXXXXXXXXXXXX
101: XXXXXXXXXXX
102: XXXXXXXX
103: XXXXXX
104: XXXXX
105: XXXX
106: XXX
107: XX
108: X
109: X
110: X