Files
2025-02-20 15:26:52 -05:00

42 lines
1.3 KiB
Python

from calculateHW2P5 import simulate_culprit, simulate_crumbs, combination, print_probabilities, analytic_probabilities, print_analytic_probabilities
import numpy as np
if __name__ == "__main__":
#N = 100000 #used while testing
NSize = [1000, 10000, 100000]
#Priors for each suspect
pSuperman = 0.5
pBatman = 0.5
#Likelihoods of crumbs on each location
supermanProb = np.array([0.3, 0.7, 0.2])
batmanProb = np.array([0.4, 0.6, 0.3])
#Simulate
'''
culprit = simulate_culprit(N, pSuperman)
crumbResults = simulate_crumbs(N, supermanProb, batmanProb, culprit)
print("Simulation:")
print_probabilities(combination(crumbResults, culprit), N)
'''
print("Simulation:")
for N in NSize:
print(f"N = {N}")
# Simulate culprit and crumbs
culprit = simulate_culprit(N, pSuperman)
crumbResults = simulate_crumbs(N, supermanProb, batmanProb, culprit)
# Count combinations and print probabilities
print("Simulated Probabilities:")
print_probabilities(combination(crumbResults, culprit), N)
print("\n")
#Analytic
print("Analytic:")
print_analytic_probabilities(analytic_probabilities(pSuperman, pBatman, supermanProb, batmanProb))
'''
As the value of N increases, the simulated probabilities get closer to the analytic probabilities.
'''