Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.18 KB | None | 0 0
  1. def sim_bios(n, doubleNVRAM=False, D=45):
  2.     deck = [1]*n + [0]*(D-n)
  3.     #NVRAM draw
  4.     draw = random.sample(deck, 6)
  5.     if 1 in draw:
  6.         return 1
  7.     D -= 4
  8.     #first draw
  9.     deck = [1]*n + [0]*(D-n)
  10.     draw = random.sample(deck, 5)
  11.     if 1 in draw:
  12.         return 1
  13.  
  14.     if doubleNVRAM:
  15.         draw = random.sample(deck, 6)
  16.         if 1 in draw:
  17.             return 1
  18.         D -= 4
  19.  
  20.     #second draw
  21.     deck = [1]*n + [0]*(D-n)
  22.     draw = random.sample(deck, 5)
  23.     if 1 in draw:
  24.         return 1
  25.     return 0
  26.  
  27. def sim_andy(n, mulligan=True, D=45):
  28.     if sim_draw(3, 45, 9):
  29.         return 1
  30.     if mulligan:
  31.         return sim_draw(3, 45, 9) == 1
  32.     else:
  33.         return 0
  34.  
  35.  
  36.  
  37. andy = 0.0
  38. andyNoMull = 0.0
  39. bios = 0.0
  40. doubleBios = 0.0
  41. trials = 0
  42. for i in range(1000000):
  43.     andy += sim_andy(3)
  44.     andyNoMull += sim_andy(3, False)
  45.     bios += sim_bios(3, False)
  46.     doubleBios += sim_bios(3, True)
  47.     trials += 1
  48.  
  49. print "andy %0.4f andyNoMull %0.4f bios %0.4f doubleBios %0.4f"%(
  50.   andy/trials,
  51.   andyNoMull/trials,
  52.   bios/trials,
  53.   doubleBios/trials)
  54.  
  55. > $ python  tmp.py
  56. andy 0.7463 andyNoMull 0.4975 bios 0.7108 doubleBios 0.8310
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement