Tehetséggondozás az informatikában

Két kocka: átlag és eloszlás

Az előző program minimális módosításával folytathatjuk a kísérletezést két kockával.

Egy kocka –és kellően nagy esetszám– mellett jól felismerhetően egyhatod körüli relatív gyakoriságokat kapunk; két kocka esetén 11-szeres, 21-szeres, illetve 36-szoros értékeket is érdemes lehet feltüntetni (vagy természetesen bármit, amit a diákok az összes lehetőség kapcsán felvetnek) – aztán persze igyekezni kell olyan magyarázatot találni, amelyik legalább az egyik sor esetén összeegyeztethető a megfigyelt hányadosokkal.

import random

def twodice():
    db= [0]*13
    dsum= 0
    print('\nKét kockával dobunk, hányszor kapjuk a lehetséges összegeket?\n')
    n= int(input('Hányszor dobjunk? '))
    print()

    for i in range(n):
        d= random.randrange(6)+1 + 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("%-24s" % ('összeg:'), end='')
    for i in range(2, 13):
        print("%8i" % (i), end='')
    print()
    print("%-24s" % ('esetszám:'), end='')
    for i in range(2, 13):
        print("%8i" % (db[i]), end='')
    print()
    print("%-24s" % ('gyakoriság:'), end='')
    for i in range(2, 13):
        print("  %5.2f%%" % (db[i]/n*100), end='')
    print()
    print("%-24s" % ('11-szer:'), end='')
    for i in range(2, 13):
        print("  %6.3f" % (db[i]/n*11), end='')
    print()
    print("%-24s" % ('21-szer:'), end='')
    for i in range(2, 13):
        print("  %6.3f" % (db[i]/n*21), end='')
    print()
    print("%-24s" % ('36-szor:'), end='')
    for i in range(2, 13):
        print("  %6.3f" % (db[i]/n*36), end='')
    print('\n')
    for i in range(2, 13):
        print('%2i: %s' % (i, 'X'*round(db[i]/n*480)))

twodice()
És ezek után egy kimenet:
Két kockával dobunk, hányszor kapjuk a lehetséges összegeket?

Hányszor dobjunk? 1000000

       n  összeg   átlag
 1000000 7000267 7.00027

összeg:                        2       3       4       5       6       7       8       9      10      11      12
esetszám:                  27609   55377   83781  111098  139127  166841  138374  110762   83526   55515   27990
gyakoriság:                2.76%   5.54%   8.38%  11.11%  13.91%  16.68%  13.84%  11.08%   8.35%   5.55%   2.80%
11-szer:                   0.304   0.609   0.922   1.222   1.530   1.835   1.522   1.218   0.919   0.611   0.308
21-szer:                   0.580   1.163   1.759   2.333   2.922   3.504   2.906   2.326   1.754   1.166   0.588
36-szor:                   0.994   1.994   3.016   4.000   5.009   6.006   4.981   3.987   3.007   1.999   1.008

 2: XXXXXXXXXXXXX
 3: XXXXXXXXXXXXXXXXXXXXXXXXXXX
 4: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 5: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 6: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 7: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 8: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 9: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
11: XXXXXXXXXXXXXXXXXXXXXXXXXXX
12: XXXXXXXXXXXXX