# https://docs.python.org/3/library/random.html # Nepoužívejte pro šifrování! import random # https://docs.python.org/3/library/itertools.html import itertools # Generuje náhodné celé číslo 1 <= x <= 10: x = random.randint(1, 10) print(x) # Alternativa, pokud máte rádi pythoní range(...): x = random.randrange(1, 11) print(x) # Generuje náhodný prvek dané neprázdné posloupnosti: drink = random.choice([ "světlé pivo", "tmavé pivo", "slivovice", "zelený čaj", "černý čaj", "bílý čaj", "mléko", ]) print(drink) # Výsledek 'B' je třikrát pravděpodobnější než 'A': print(random.choice(['A', 'B', 'B', 'B'])) # Vrátí seznam k náhodných prvků z dané sekvence (mohou se opakovat): print(random.choices(['A', 'B', 'C'], k=5)) # Také můžeme určit váhy jednotlivých prvků: print(random.choices(['A', 'B', 'C'], weights=[1, 1, 4], k=5)) # Výběr bez opakování: print(random.sample(['w', 'x', 'y', 'z'], k=2)) print(random.sample(['w', 'x', 'y', 'x'], k=2)) # dvě různá 'x' # Náhodná permutace: my_list = ['a', 'b', 'c', 'd'] print(random.sample(my_list, k=len(my_list))) # Destruktivní náhodná permutace: random.shuffle(my_list) print(my_list) # Inicializace počátecního stavu generátoru random.seed(42) # Nebo můžeme chtít pokaždé jiný počáteční stav random.seed() # Generování všech možností (vrací iterable): print(list(itertools.permutations([1, 2, 3]))) print(list(itertools.combinations('ABCD', 2))) print(list(itertools.combinations_with_replacement('ABCD', 2))) # Kombinační čísla nejsou v základních knihonách, ale ve scipy. # import scipy.special # scipy.special.comb(n, k, exact=True) # vrátí n nad k