Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import math
- def pulluntil(target, prob, pity):
- hits = 0
- count = 0
- while(hits<target):
- count +=1
- if (random.random() < prob):
- hits += 1
- if ((count%(pity))==0):
- hits += 1
- return count
- def getquarts(arr):
- quarts = []
- sarr = sorted(arr)
- quarts.append(sarr[0])
- for i in range(4):
- #print(round(len(sarr)/4*(i+1)))
- quarts.append(sarr[round(len(sarr)/4*(i+1))-1])
- return quarts
- def main(hits, prob, pity):
- numsims = 10000
- results = []
- for i in range(numsims):
- results.append(pulluntil(hits, prob, pity))
- # print(results)
- avg = 0
- for i in range(len(results)):
- avg += results[i]
- avg /= len(results)
- q=getquarts(results)
- print(hits, " | ", round(avg,1), " | ", q[0], " | ", q[1], " | ", q[2], " | ", q[3], " | ", q[4])
- print("Dupes | Mean | Trial Min | Quartile 1 | Median | Quartile 3 | Trial Max")
- print(":--: | :--: | :--: | :--: | :--: | :--: | :--:")
- for i in range(1,11):
- main(i, 0.007, 200)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement