fork download
  1. from __future__ import division
  2. import random
  3.  
  4. def every_combination(n):
  5. bits = [2**i for i in range(n)]
  6. for value in xrange(2**n):
  7. yield [1 if value & bits[i] else 0 for i in range(n)]
  8.  
  9. for n in range(3, 16):
  10. HTH = 0
  11. HTT = 0
  12. numberOfTosses = 0
  13.  
  14. for myList in every_combination(n):
  15.  
  16. numberOfTosses += len(myList)
  17. for i in range (len(myList) - 2):
  18.  
  19. if myList[i] == 1 and myList[i+1] == 0 and myList[i+2] == 1:
  20. HTH +=1
  21.  
  22. if myList[i] == 1 and myList[i+1] == 0 and myList[i+2] == 0:
  23. HTT +=1
  24.  
  25. print 'For number of rolls', n
  26. print 'HTT :' ,numberOfTosses, HTT, numberOfTosses/HTT
  27. print 'HTH :' ,numberOfTosses, HTH, numberOfTosses/HTH
Success #stdin #stdout 0.69s 10024KB
stdin
Standard input is empty
stdout
For number of rolls 3
HTT : 24 1 24.0
HTH : 24 1 24.0
For number of rolls 4
HTT : 64 4 16.0
HTH : 64 4 16.0
For number of rolls 5
HTT : 160 12 13.3333333333
HTH : 160 12 13.3333333333
For number of rolls 6
HTT : 384 32 12.0
HTH : 384 32 12.0
For number of rolls 7
HTT : 896 80 11.2
HTH : 896 80 11.2
For number of rolls 8
HTT : 2048 192 10.6666666667
HTH : 2048 192 10.6666666667
For number of rolls 9
HTT : 4608 448 10.2857142857
HTH : 4608 448 10.2857142857
For number of rolls 10
HTT : 10240 1024 10.0
HTH : 10240 1024 10.0
For number of rolls 11
HTT : 22528 2304 9.77777777778
HTH : 22528 2304 9.77777777778
For number of rolls 12
HTT : 49152 5120 9.6
HTH : 49152 5120 9.6
For number of rolls 13
HTT : 106496 11264 9.45454545455
HTH : 106496 11264 9.45454545455
For number of rolls 14
HTT : 229376 24576 9.33333333333
HTH : 229376 24576 9.33333333333
For number of rolls 15
HTT : 491520 53248 9.23076923077
HTH : 491520 53248 9.23076923077