# Python má pro generování pseudonáhodných čísel vestavěný modul 'random',
# jednou z jeho funkcí je 'randint' pro celá čísla v zadaném rozsahu.
# Funkce 'hod_kostkou' nám simuluje hod jednou běžnou kostkou, náhodně
# vrací čísla 1 až 6.

import random

def hod_kostkou():
    return random.randint(1, 6)

# Při opakovaných hodech několika kostkami budeme sledovat četnost
# výskytu jednotlivých součtů. Nakonec nakreslíme histogram odpovídající
# těmto četnostem.
#
# funkce 'statistika' se volá s parametry počet kostek a počet
# opakování pokusu
def statistika(kostek, pokusu):
    # četnosti zaznamenáváme do pole (seznamu celých čísel), prvky
    # inicializujeme nulou (položky s indexy 0 až kostek-1 nejsou
    # využity, ale toto nám zjednodušuje použití)
    soucty = [0] * (kostek * 6 + 1)
    # postupně provádíme pokusy
    for pokus in range(pokusu):
        # každý pokus znamená hod několika kostkami, počítáme součet
        soucet = 0
        for k in range(kostek):
            soucet += hod_kostkou()
        # pro výsledný součet zvýšíme počítadlo
        soucty[soucet] += 1
    # tisk výsledků
    print("Statistika - kostek: {}, pokusů: {}".format(kostek, pokusu))
    print()
    # kromě součtu a počtu výsledků vykreslíme sloupeček
    maximum = max(soucty)
    for soucet in range(kostek, kostek * 6 + 1):
        pocet = soucty[soucet]
        # pro maximum je délka 50, pro ostatní poměrně kratší
        sloupecek = (50 * pocet + maximum // 2) // maximum * "*"
        print("{:3d}: ({:6d}) |{:s}".format(soucet, pocet, sloupecek))

statistika(4, 100000)

