Advertisement
linuxlizard

Untitled

Jul 10th, 2020
1,019
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.80 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. # calculate outcomes of 3d6
  3.  
  4. import random
  5.  
  6. d6 = range(1,6+1)
  7.  
  8. def roll_d6():
  9.     return random.choice(d6)
  10.  
  11. def probability_distribution():
  12.     result = {}
  13.     for d1 in range(1,7):
  14.         for d2 in range(1,7):
  15.             for d3 in range(1,7):
  16.                 try:
  17.                     result[d1+d2+d3] += 1
  18.                 except KeyError:
  19.                     result[d1+d2+d3] = 1
  20.     return result
  21.  
  22. dist = probability_distribution()
  23. sum_ = sum(dist.values())
  24.  
  25. # calculate Expected value from probability distribution
  26. Ex = 0
  27. for k,v in dist.items():
  28.     print(k,v,v/sum_,k*v/sum_)
  29.     Ex += k*v/sum_
  30. print(Ex)
  31.  
  32. # game it out with the average result of many 3d6 rolls
  33. rolls = [roll_d6()+roll_d6()+roll_d6() for i in range(4096)]
  34. print(sum(rolls) / len(rolls))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement