Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # calculate outcomes of 3d6
- import random
- d6 = range(1,6+1)
- def roll_d6():
- return random.choice(d6)
- def probability_distribution():
- result = {}
- for d1 in range(1,7):
- for d2 in range(1,7):
- for d3 in range(1,7):
- try:
- result[d1+d2+d3] += 1
- except KeyError:
- result[d1+d2+d3] = 1
- return result
- dist = probability_distribution()
- sum_ = sum(dist.values())
- # calculate Expected value from probability distribution
- Ex = 0
- for k,v in dist.items():
- print(k,v,v/sum_,k*v/sum_)
- Ex += k*v/sum_
- print(Ex)
- # game it out with the average result of many 3d6 rolls
- rolls = [roll_d6()+roll_d6()+roll_d6() for i in range(4096)]
- print(sum(rolls) / len(rolls))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement