Skip to content

Analyse results

The Monte Carlo Simulation returns a results object:

>>> import backstab
>>> game = backstab.TraitorsGame(n_players=9, n_traitors=3)
>>> results = game.simulate(n=1000, seed=0, faithful=backstab.FixedOrder(), traitor=backstab.Collusion())
>>> results
SimulationResults(n=1000, P(F)=0.985 [0.977,0.993], avg_rounds=4.0)
>>> print(f"Faithful win rate: {results.faithful_win_rate:.1%}")
Faithful win rate: 98.5%
>>> print(f"Traitor win rate:  {results.traitor_win_rate:.1%}")
Traitor win rate:  1.5%
>>> print(f"Average rounds:    {results.avg_rounds:.1f}")
Average rounds:    4.0
>>> lo, hi = results.ci_95
>>> print(f"95% CI:            [{lo:.3f}, {hi:.3f}]")
95% CI:            [0.977, 0.993]