Guest User

Untitled

a guest
Mar 17th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. import numpy as np
  2. import random
  3. from matplotlib import pyplot as plt
  4.  
  5. def random_sum(nlist=[6,8,8]):
  6. domainlist = [[1+x for x in range(n)] for n in nlist]
  7. choicelist = [random.choice(domain) for domain in domainlist]
  8. return sum(choicelist)
  9.  
  10. def trial(nlist=[6,8,8], num_samples=1000):
  11. data = []
  12. for n in range(num_samples):
  13. data += [random_sum(nlist=nlist)]
  14. if n%100000==0:
  15. print str(float(n)/num_samples*100)+'% complete'
  16. plt.xlim([min(data)-0.5, max(data)+0.5])
  17. bins = [1.5+n for n in range(sum(nlist))]
  18. plt.hist(data, bins=bins, alpha=0.5, normed=True)
  19. plt.title('{0} rolls with dice of sides {1}'.format(*[num_samples, nlist]))
  20. plt.xlabel('sum')
  21. plt.ylabel('frequency')
  22. plt.show()
Add Comment
Please, Sign In to add comment