# loop through different p1 values and calculate our best guess each time p1 = 0 for i in range(0, 19): p1 = p1 + 0.05 diff = 1 - p1 prob = float(diff) / 5 p2 = prob p3 = prob p4 = prob p5 = prob for j in range(0, Nexp): ones = 0 for k in range(0, Nroll): x = random.DiceRoll(p1, p2, p3, p4, p5) if (x == 1): ones = ones + 1 cp1 = float(ones) / Nroll p1_true_arr.append(p1) p1_guess_arr.append(cp1) # fill our 2 slices if (abs(p1 - probA) < 0.00000008): sliceA.append(cp1) if (abs(p1 - probB) < 0.00000008): sliceB.append(cp1) # plotting plt.figure() plt.hist2d(p1_true_arr, p1_guess_arr)
# user can input value for p1, experiment or measurement number if "-prob1" in sys.argv: p = sys.argv.index("-prob1") prob1 = float(sys.argv[p + 1]) if (prob1 > 0 and prob1 < 1): p1 = prob1 if "-Nexp" in sys.argv: p = sys.argv.index("-Nexp") Ne = int(sys.argv[p + 1]) if Ne > 0: Nexp = Ne if "-Nroll" in sys.argv: p = sys.argv.index("-Nroll") Nt = int(sys.argv[p + 1]) if Nt > 0: Nroll = Nt # the remaining dice roll outcomes are given equal probability diff = 1 - p1 prob = float(diff) / 5 p2 = prob p3 = prob p4 = prob p5 = prob # output rolls for e in range(0, Nexp): for t in range(0, Nroll): print(random.DiceRoll(p1, p2, p3, p4, p5), end=" ") print(" ")