fork download
  1. from random import randint
  2. from collections import Counter
  3.  
  4. # UWAGA skrypt korzysta z
  5. # skrypt obrazuje prawdopodobienstwo wylosownia ikony ze 105 dostepnych pilek
  6.  
  7. # Zawodnicy sa numerowani od gory zaczynajac od 1
  8. # W obecnym numery IM to:
  9. iconic_moment = {
  10. 5: "Torres",
  11. 6: "Owen",
  12. 8: "Alonso"
  13. }
  14.  
  15. # parametry
  16. COINS_TO_SPEND = 12000 # ile coinsow do wydania w kazdej prob
  17. HOW_MUCH_TRIES = 1 # ile prob
  18.  
  19. spinned_im_all_tries = [] # lista wylosowanych IM we wszystkich próbach
  20. spinned_im_all_tries_counter = []
  21. spinned_im_all_tries_count = 0
  22.  
  23. for i in range(1, HOW_MUCH_TRIES + 1): # ile prob
  24. print("{} proba za {} coinsow: ".format(i, COINS_TO_SPEND))
  25. spinned = [] # lista wylosowanych zawodnikow
  26. spinned_im = [] # lista wylosowanych ikon
  27. coins = COINS_TO_SPEND
  28.  
  29. while (coins >= 100): # dopoki sa coinsy losuj
  30. x = randint(1, 105) # losujemy zawodnika (liczba z zakresu 1-105)
  31. spinned.append(x) # dodajemy do listy wylosowanych
  32. if x in iconic_moment.keys():
  33. spinned_im.append(iconic_moment.get(x))
  34. spinned_im_all_tries_count = spinned_im_all_tries_count + 1
  35. spinned_im_all_tries_counter.append(iconic_moment.get(x))
  36. coins = coins - 100 # odejmujemy wydane coinsy
  37.  
  38. print("Wylosowani zawodnicy ({} losowan) to: {}".format(len(spinned), sorted(spinned)))
  39. spinned_im_all_tries.append(spinned_im)
  40. w = Counter(spinned) # zliczamy ilosc od najwiekszej wylosowanych kart
  41. print("Ilosc wylosownach to (nr zawodnika: ilosc razy): {}".format(w)) # liczba: ilosc razy
  42. print("Wylosowani IM to {}: {}".format(len(spinned_im), sorted(spinned_im)))
  43. print()
  44.  
  45. print("Wylosowani IM w kolejnych {} probach ({} losowan, {} coins) to lacznie {} IM: {}".format(HOW_MUCH_TRIES, int(
  46. HOW_MUCH_TRIES * (COINS_TO_SPEND / 100)), HOW_MUCH_TRIES * COINS_TO_SPEND, spinned_im_all_tries_count,
  47. spinned_im_all_tries)) # wydruk IM ze wszystkich prob
  48. w = Counter(spinned_im_all_tries_counter) # zliczamy ilosc od najwiekszej wylosowanych kart
  49. print(w)
  50.  
Success #stdin #stdout 0.02s 11648KB
stdin
Standard input is empty
stdout
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})