"""Mines (5x5): exact odds and multipliers for every mine count x safe picks.""" from math import comb from common import save EDGE = 0.01 grid = [] rows = [] for m in range(1, 25): for k in range(1, 26 - m): p = comb(25 - m, k) / comb(25, k) fair = 1 / p grid.append({"mines": m, "picks": k, "p_pct": round(p * 100, 6), "fair_mult": round(fair, 4), "mult_1pct_edge": round(fair * (1 - EDGE), 4)}) rows.append([m, k, round(p * 100, 6), round(fair, 4), round(fair * (1 - EDGE), 4)]) save("mines", {"game": "Mines 5x5", "method": "exact: P = C(25-m,k)/C(25,k)", "house_edge_example": EDGE, "seed": "n/a (exact)", "script": "mines_odds.py"}, {"grid": grid}, rows, ["mines", "safe_picks", "probability_pct", "fair_multiplier", "multiplier_at_1pct_edge"])