We run probability models for a living — horse racing and football, where edges are small but exist. So users keep asking: "when will you predict the Mark Six?" (Hong Kong's 6-out-of-49 lottery.)
The honest answer is never, and the reason is worth publishing: every one of the 13,983,816 combinations is exactly equiprobable. There is no draw bias, no hot number, no due number — only combinatorics and a prize structure that guarantees a negative expected value. So instead of a "predictor", we shipped a full derivation of the odds, verified in Python.
The core computation
from math import comb
total = comb(49, 6) # 13,983,816
print(f"total combinations: {total:,}")
# Prize tiers: 6 winning numbers + 1 extra ("special") number are drawn.
# For a ticket holding k of the 6 main numbers (and maybe the special):
tiers = {
"1st (match 6)": comb(6,6) * comb(43,0), # 1
"2nd (5 + special)": comb(6,5) * 1, # 6
"3rd (match 5)": comb(6,5) * comb(42,1), # 252
"4th (4 + special)": comb(6,4) * 1 * comb(42,1), # 630
"5th (match 4)": comb(6,4) * comb(42,2), # 12,915
"6th (3 + special)": comb(6,3) * 1 * comb(42,2), # 17,220
"7th (match 3)": comb(6,3) * comb(42,3), # 229,600
}
winning = sum(tiers.values())
for name, n in tiers.items():
print(f"{name:22s} {n:>8,} combos ~1 in {total/n:,.0f}")
print(f"\nany prize: {winning:,} / {total:,} ≈ 1 in {total/winning:.1f}")
Output:
1st (match 6) 1 combos ~1 in 13,983,816
2nd (5 + special) 6 combos ~1 in 2,330,636
3rd (match 5) 252 combos ~1 in 55,491
4th (4 + special) 630 combos ~1 in 22,197
5th (match 4) 12,915 combos ~1 in 1,083
6th (3 + special) 17,220 combos ~1 in 812
7th (match 3) 229,600 combos ~1 in 61
any prize: 260,624 / 13,983,816 ≈ 1 in 53.7
Why the expected value is structurally negative
Hong Kong's Mark Six allocates roughly 54% of turnover to the prize fund (the rest goes to duty, the Lotteries Fund, and commission). Before any draw happens, the game's RTP (return to player) is capped near 54 cents on the dollar:
- Base-case EV ≈ −46% per dollar spent
- A snowball (金多寶) draw inflates the first-division pool — EV becomes less negative, not positive
- No staking system changes this: Kelly criterion applied to a −EV game correctly answers "bet zero"
The hot/cold number fallacy, in one paragraph
Over the last 50 draws, some numbers will have appeared more often than others — that's what randomness looks like. A chi-square test on real draw history shows deviations entirely consistent with uniform draws. "Hot" numbers have no memory; the balls don't know they're due. Any model claiming otherwise is fitting noise, and we say so on our own statistics page where we publish the real draw data alongside this warning.
What we actually built
Instead of fake predictions, the site publishes:
- the full combinatorial derivation above (Traditional Chinese long-read: 六合彩的組合數學)
- live 50-draw frequency stats with the chi-square context, labeled honestly
- a standing disclaimer on every page: this is statistical research and education, not betting advice — 18+, gamble responsibly (HK's Ping Wo Fund hotline: 1834 633)
There's a strange freedom in publishing a model whose output is "don't". Racing and football models have to earn trust by being calibrated; a lottery model earns trust by being honest about the one number that matters — 1 in 13,983,816.
Full derivation with the prize-fund math and snowball analysis: mystique-racing.com/blog/marksix-combinatorics
Top comments (0)