Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def d6():
- return random.randint(1,6)
- def roll4d6discard():
- results = [d6() for i in range(4)]
- results.sort()
- return results[1:4]
- def roll3d6():
- results = [d6() for i in range(3)]
- return results
- def roll3d6reroll():
- results = [d6() for i in range(3)]
- results.sort()
- results[0] = d6()
- return results
- def roll3d6rerollones():
- results = [d6() for i in range(3)]
- results.sort()
- while 1 in results:
- results[0] = d6()
- results.sort()
- return results
- if __name__ == "__main__":
- n = 10000000
- a3d6only = 0.0
- a3d6onereroll = 0.0
- a4d6discardworst = 0.0
- a3d6rerollallones = 0.0
- for i in range(n):
- a3d6only += sum(roll3d6())
- a3d6onereroll += sum(roll3d6reroll())
- a3d6rerollallones += sum(roll3d6rerollones())
- a4d6discardworst += sum(roll4d6discard())
- a3d6only /= n
- a3d6onereroll /= n
- a4d6discardworst /= n
- a3d6rerollallones /= n
- print "Avergae 3d6 %lf" % (a3d6only)
- print "Avergae 3d6 with one reroll %lf" % (a3d6onereroll)
- print "Avergae 3d6 with all ones rerolled %lf" % (a3d6rerollallones)
- print "Avergae 4d6 %lf" % (a4d6discardworst)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement