Advertisement
Guest User

Untitled

a guest
Jul 6th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.41 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import random
  5.  
  6. boxes = [
  7.     [0, 0], # dwie srebrne
  8.     [0, 1], # srebrna i złota
  9.     [1, 1], # dwie złote
  10. ]
  11.  
  12. # licznik wylosowanych kul srebrnych i złotych
  13. silver = gold = 0
  14.  
  15. # kolejne losowania w pętli
  16. while True:
  17.  
  18.     # wybieramy losowo pudełko
  19.     box = boxes[random.randint(0, 2)]
  20.     if not 1 in box:
  21.         # w pudełku nie ma złotej kuli,
  22.         # więc warunek początkowy nie został spełniony,
  23.         # czyli lecimy od początku
  24.         continue
  25.  
  26.     # wybieramy losowo kulę z pudełka wybranego wcześniej
  27.     # (tutaj już wiemy że w pudełku mamy złotą kulę)
  28.     pick1 = random.randint(0, 1)
  29.     ball = box[pick1]
  30.  
  31.     if ball != 1:
  32.         # jeśli wybrana kula nie jest złota,
  33.         # to warunek początkowy nie został spełniony,
  34.         # czyli lecimy od początku
  35.         continue
  36.  
  37.     # tutaj już mamy sytuajcę w której wybraliśmy
  38.     # losową kulę z losowego pudełka i jest to kula złota,
  39.     # więc bierzemy pozostałą kulę z tego samego pudełka
  40.     pick2 = box[0] if pick1 == 1 else box[1]
  41.  
  42.     if pick2 == 0:
  43.         # druga kula jest srebrna
  44.         silver += 1
  45.     else:
  46.         # druga kula jest złota
  47.         gold += 1
  48.  
  49.     # jeśli mamy już 1000000 wylosowanych kul, kończymy eksperyment
  50.     if silver + gold == 1000000:
  51.         break
  52.  
  53. # wynik, to procent kul złotych wśród wszystkich wylosowanych kul
  54. result = float(gold * 100) / float(silver + gold)
  55.  
  56. # piszemy wynik i kończymy
  57. print('{}%'.format(result))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement