Advertisement
Guest User

what is best 3d6

a guest
Nov 21st, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.22 KB | None | 0 0
  1. import random
  2.  
  3. def d6():
  4.     return random.randint(1,6)
  5.  
  6. def roll4d6discard():
  7.     results = [d6() for i in range(4)]
  8.     results.sort()
  9.     return results[1:4]
  10.  
  11. def roll3d6():
  12.     results = [d6() for i in range(3)]
  13.     return results
  14.  
  15. def roll3d6reroll():
  16.     results = [d6() for i in range(3)]
  17.     results.sort()
  18.     results[0] = d6()
  19.     return results
  20.  
  21. def roll3d6rerollones():
  22.     results = [d6() for i in range(3)]
  23.     results.sort()
  24.     while 1 in results:
  25.         results[0] = d6()
  26.         results.sort()
  27.     return results
  28.  
  29. if __name__ == "__main__":
  30.     n = 10000000
  31.     a3d6only = 0.0
  32.     a3d6onereroll = 0.0
  33.     a4d6discardworst = 0.0
  34.     a3d6rerollallones = 0.0
  35.     for i in range(n):
  36.         a3d6only += sum(roll3d6())
  37.         a3d6onereroll += sum(roll3d6reroll())
  38.         a3d6rerollallones += sum(roll3d6rerollones())
  39.         a4d6discardworst += sum(roll4d6discard())
  40.     a3d6only /= n
  41.     a3d6onereroll /= n
  42.     a4d6discardworst /= n
  43.     a3d6rerollallones /= n
  44.     print "Avergae 3d6 %lf" % (a3d6only)
  45.     print "Avergae 3d6 with one reroll %lf" % (a3d6onereroll)
  46.     print "Avergae 3d6 with all ones rerolled %lf" % (a3d6rerollallones)
  47.     print "Avergae 4d6 %lf" % (a4d6discardworst)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement