from random import randint from collections import Counter # UWAGA skrypt korzysta z # skrypt obrazuje prawdopodobienstwo wylosownia ikony ze 105 dostepnych pilek # Zawodnicy sa numerowani od gory zaczynajac od 1 # W obecnym numery IM to: iconic_moment = { 5: "Torres", 6: "Owen", 8: "Alonso" } # parametry COINS_TO_SPEND = 12000 # ile coinsow do wydania w kazdej prob HOW_MUCH_TRIES = 1 # ile prob spinned_im_all_tries = [] # lista wylosowanych IM we wszystkich próbach spinned_im_all_tries_counter = [] spinned_im_all_tries_count = 0 for i in range(1, HOW_MUCH_TRIES + 1): # ile prob print("{} proba za {} coinsow: ".format(i, COINS_TO_SPEND)) spinned = [] # lista wylosowanych zawodnikow spinned_im = [] # lista wylosowanych ikon coins = COINS_TO_SPEND while (coins >= 100): # dopoki sa coinsy losuj x = randint(1, 105) # losujemy zawodnika (liczba z zakresu 1-105) spinned.append(x) # dodajemy do listy wylosowanych if x in iconic_moment.keys(): spinned_im.append(iconic_moment.get(x)) spinned_im_all_tries_count = spinned_im_all_tries_count + 1 spinned_im_all_tries_counter.append(iconic_moment.get(x)) coins = coins - 100 # odejmujemy wydane coinsy print("Wylosowani zawodnicy ({} losowan) to: {}".format(len(spinned), sorted(spinned))) spinned_im_all_tries.append(spinned_im) w = Counter(spinned) # zliczamy ilosc od najwiekszej wylosowanych kart print("Ilosc wylosownach to (nr zawodnika: ilosc razy): {}".format(w)) # liczba: ilosc razy print("Wylosowani IM to {}: {}".format(len(spinned_im), sorted(spinned_im))) print() print("Wylosowani IM w kolejnych {} probach ({} losowan, {} coins) to lacznie {} IM: {}".format(HOW_MUCH_TRIES, int( HOW_MUCH_TRIES * (COINS_TO_SPEND / 100)), HOW_MUCH_TRIES * COINS_TO_SPEND, spinned_im_all_tries_count, spinned_im_all_tries)) # wydruk IM ze wszystkich prob w = Counter(spinned_im_all_tries_counter) # zliczamy ilosc od najwiekszej wylosowanych kart print(w)
Standard input is empty
1 proba za 12000 coinsow: Wylosowani zawodnicy (120 losowan) to: [1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 9, 9, 13, 13, 13, 14, 14, 14, 15, 15, 16, 18, 21, 23, 24, 26, 27, 27, 27, 27, 27, 27, 29, 29, 29, 30, 30, 31, 32, 32, 33, 34, 34, 35, 36, 39, 39, 39, 39, 40, 41, 41, 41, 42, 42, 43, 43, 45, 45, 46, 47, 48, 50, 51, 51, 51, 52, 53, 53, 53, 54, 56, 57, 58, 59, 60, 61, 61, 62, 62, 63, 64, 69, 73, 73, 75, 76, 76, 76, 77, 77, 78, 78, 79, 81, 81, 81, 81, 82, 83, 84, 85, 86, 88, 89, 90, 90, 93, 94, 94, 94, 95, 95, 97, 101, 102, 102, 102, 103, 104] Ilosc wylosownach to (nr zawodnika: ilosc razy): Counter({27: 6, 39: 4, 81: 4, 53: 3, 102: 3, 41: 3, 29: 3, 76: 3, 51: 3, 94: 3, 14: 3, 13: 3, 95: 2, 61: 2, 45: 2, 15: 2, 78: 2, 62: 2, 43: 2, 9: 2, 2: 2, 34: 2, 90: 2, 5: 2, 73: 2, 32: 2, 30: 2, 42: 2, 77: 2, 7: 2, 6: 1, 69: 1, 48: 1, 40: 1, 50: 1, 21: 1, 104: 1, 83: 1, 59: 1, 35: 1, 36: 1, 101: 1, 26: 1, 88: 1, 54: 1, 89: 1, 4: 1, 47: 1, 103: 1, 63: 1, 84: 1, 3: 1, 86: 1, 85: 1, 75: 1, 58: 1, 60: 1, 79: 1, 16: 1, 57: 1, 82: 1, 97: 1, 23: 1, 46: 1, 56: 1, 64: 1, 93: 1, 18: 1, 31: 1, 33: 1, 1: 1, 52: 1, 24: 1}) Wylosowani IM to 3: ['Owen', 'Torres', 'Torres'] Wylosowani IM w kolejnych 1 probach (120 losowan, 12000 coins) to lacznie 3 IM: [['Owen', 'Torres', 'Torres']] Counter({'Torres': 2, 'Owen': 1})