Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. import random
  2.  
  3. def deckmaker():
  4. deck = []
  5. for i in range(52):
  6. if deck.count(0) == 26:
  7. deck.append(1)
  8. elif deck.count(1) == 26:
  9. deck.append(0)
  10. elif random.random() > .5:
  11. deck.append(0)
  12. else:
  13. deck.append(1)
  14. return deck
  15.  
  16. def deckmaker2():
  17. newdeck = []
  18. for i in range(26):
  19. newdeck.append(0)
  20. for i in range(26):
  21. newdeck.append(1)
  22. deck = []
  23. for i in range(52):
  24. x = random.randint(0,len(newdeck)-1)
  25. deck.append(newdeck.pop(x))
  26. return deck
  27.  
  28. mycards = []
  29.  
  30. for j in range(1000):
  31. mydeck = deckmaker(52)
  32. mem_length = 5
  33. mem = []
  34. for c in range(mem_length):
  35. mem.append(4)
  36. for i in range(len(mydeck)):
  37. if mem.count(0) == mem_length:
  38. mycards.append(mydeck[i])
  39. break
  40. elif i == len(mydeck)-1:
  41. mycards.append(mydeck[i])
  42. break
  43. else:
  44. mem.append(mydeck[i])
  45. mem.pop(0)
  46.  
  47.  
  48. x = float(mycards.count(1))
  49.  
  50. print x/len(mycards)
  51.  
  52. import random
  53.  
  54. def deckmaker(n):
  55. half = n // 2
  56. deck = []
  57. for i in range(n):
  58. if deck.count(0) == half:
  59. deck.append(1)
  60. elif deck.count(1) == half:
  61. deck.append(0)
  62. elif random.random() > .5:
  63. deck.append(0)
  64. else:
  65. deck.append(1)
  66. return deck
  67.  
  68. from collections import Counter
  69. c = Counter()
  70. for i in range(1000):
  71. c[tuple(deckmaker(2))] += 1
  72. for t in sorted(c):
  73. print t, c[t]
  74.  
  75. (0, 1) 495
  76. (1, 0) 505
  77.  
  78. c[tuple(deckmaker(4))] += 1
  79.  
  80. (0, 0, 1, 1) 236
  81. (0, 1, 0, 1) 127
  82. (0, 1, 1, 0) 133
  83. (1, 0, 0, 1) 135
  84. (1, 0, 1, 0) 130
  85. (1, 1, 0, 0) 239
  86.  
  87. >>> from math import factorial as f
  88. >>> one = f(52) // f(26)**2
  89. >>> two = 2**26
  90. >>> float(one) / two
  91. 7389761.998476148
  92.  
  93. def deckmaker(n=52):
  94. deck = [None] * n
  95. nremaining = float(n)
  96. nzero = nremaining / 2.0
  97. for i in range(n):
  98. if random.random() < nzero / nremaining:
  99. deck[i] = 0
  100. nzero -= 1.0
  101. else:
  102. deck[i] = 1
  103. nremaining -= 1.0
  104. return deck
  105.  
  106. 25% (0, 0)
  107. 25% (0, 1)
  108. 25% (1, 0)
  109. 25% (1, 1)
  110.  
  111. 25.0% (0, 0, 1, 1)
  112. 12.5% (0, 1, 0) > (0, 1, 0, 1)
  113. 12.5% (0, 1, 1) > (0, 1, 1, 0)
  114. 12.5% (1, 0, 0) > (1, 0, 0, 1)
  115. 12.5% (1, 0, 1) > (1, 0, 1, 0)
  116. 25.0% (1, 1, 0, 0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement