Quali sono le probabilità di una scala reale? Probabilità, tabelle ed esempi delle mani di poker
Se sai contare, puoi imparare a pensare come un giocatore di poker. Il poker sembra una questione di fortuna a breve termine, ma dietro ogni decisione si celano combinatoria, probabilità e valore atteso (EV). In questa guida calcolerai le probabilità per ogni mano classica di 5 carte (coppia, doppia coppia, tris, scala, colore, full, poker, scala colore, scala reale), imparerai a tradurre i conteggi in probabilità e quote "1 su X" e utilizzerai piccoli snippet Python per verificare i risultati ed eseguire rapide simulazioni. L'obiettivo non è promettere vincite, ma aiutarti a ragionare con chiarezza sull'incertezza al tavolo.
Nota didattica: questo contenuto è destinato all'apprendimento della statistica e del processo decisionale. Non garantisce profitti né incoraggia il gioco d'azzardo.
Cosa imparerai
- Come il mazzo da 52 carte si adatta al conteggio delle combinazioni.
- Probabilità esatte di 5 carte e quote "1 su X" per ogni valore della mano.
- Derivazioni passo dopo passo (ad esempio, una coppia, colore, full house) con KaTeX.
- Come confrontare le pot odds con le drawing odds con EV.
- Brevi frammenti di codice Python per verificare i conteggi ed eseguire piccole simulazioni.
1) Il mazzo, le combinazioni e il linguaggio della probabilità
Un mazzo standard ha 52 carte: 13 valori (A, 2,…, K) × 4 semi (♠♥♦♣). Nel poker a 5 carte trattiamo le mani come combinazioni senza ordine. Il denominatore per tutte le probabilità esatte è:
\text{Total 5-card hands}=\binom{52}{5}=\frac{52!}{5!,47!}=2{,}598{,}960Tutte le probabilità esatte di 5 carte riportate di seguito dividono il conteggio della mano appropriato per \binom{52}{5}.
2) Probabilità esatte delle mani di poker a 5 carte (conteggi, probabilità, "1 su X")
Di seguito è riportata la tabella standard dei conteggi delle mani e delle probabilità mutuamente esclusive. "Probabilità (1 su …)" è semplicemente \dfrac{1}{p}, arrotondato.
| Tipo di mano | Conteggio combinatorio | Probabilità | Probabilità (1 su …) |
|---|---|---|---|
| Scala reale | 4 | 0.000154% | 649,740 |
| Scala reale (ex-Royal) | 36 | 0.001385% | 72,193 |
| Quattro di un genere | 624 | 0.0240% | 4,165 |
| Full House | 3,744 | 0.1441% | 694 |
| Colore (ex scala reale) | 5,108 | 0.1965% | 509 |
| Scala (ex scala reale) | 10,200 | 0.3925% | 255 |
| Three of a Kind | 54,912 | 2.1128% | 47 |
| Due coppie | 123,552 | 4.7539% | 21 |
| una coppia | 1,098,240 | 42.2569% | 2.37 |
| Carta alta (nessuna scala/colore) | 1,302,540 | 50.1177% | 2.0 |
Pronti veloci
• Una scala reale è pari a 4 su 2,598,960 possibili mani da 5 carte, ovvero circa 1 su 649,740.
• Oltre il 92% delle mani da 5 carte sono "una coppia" o peggio; circa la metà sono semplicemente carte alte.
Derivazioni elaborate (selezionate)
Scala reale
Hai bisogno di AKQJ-10 tutti dello stesso seme. Ci sono 4 semi, quindi:
N_{\text{royal}}=4 \quad\Rightarrow\quad P(\text{royal})=\frac{4}{\binom{52}{5}}\approx 1.539\times 10^{-6} ,(0.000154%)Scala reale (esclusa la scala reale)
Ci sono 10 scale di valore per seme (da A-5 a 10-A), meno la scala reale stessa; distribuite su 4 semi:
N_{\text{sf (ex-reale)}}=10\cdot 4 - 4 = 36
una coppia
Scegli il valore della coppia; scegli i suoi 2 semi; scegli 3 valori laterali distinti; scegli 1 seme per ogni valore laterale:
N_{\text{one pair}}=\binom{13}{1}\binom{4}{2}\binom{12}{3}4^{3}=1{,}098{,}240 P(\text{una coppia})=\frac{1{,}098{,}240}{\binom{52}{5}}\approx 0.422569 ; (42.2569%)Full House
Scegli un valore per i tris e un valore diverso per la coppia; scegli i semi di conseguenza:
N_{\text{full}}=\binom{13}{1}\binom{4}{3}\binom{12}{1}\binom{4}{2}=3{,}744Colore (esclusa scala reale)
Scegli un seme (4 modi), quindi scegli 5 delle sue 13 carte (senza ordine), sottrai le scale reali di quel seme:
N_{\text{flush ex-sf}}=4\binom{13}{5}-40=5{,}108(Ci sono 10 sequenze di scale × 4 semi = 40 scale colore in totale; 4 di queste sono reali.)
3) Dal conteggio alle decisioni: Pot Odds e EV
Se un'azione produce risultati x_i con probabilità p_i, il valore atteso è
\mathrm{EV}=\sum_i p_i x_i
Una chiamata è redditizia quando EV > 0.Un rapido test di pareggio confronta la tua probabilità di vincita con quote pot:
- Pot odds (rapporto) = \dfrac{\text{importo da chiamare}}{\text{piatto dopo la chiamata}}
- Probabilità di vincita in pareggio p^*:
p^*=\frac{\text{importo da chiamare}}{\text{importo da chiamare}+\text{pot}}
Esempio. Piatto = $90; il cattivo punta $10; tu chiami $10 → piatto dopo aver chiamato = $110.
p^*=\frac{10}{110}\circa 9.09%
Se le tue possibilità di migliorare (e comunque vincere) superano il 9.09%, la chiamata ha un EV chip positivo (ignorando le strade future).
4) Regole di approssimazione e di uscita (regola del 4 e del 2)
An out è una carta non vista che aumenta le tue probabilità di vincita.
- Una carta in arrivo (river): P(\text{hit})\approx \frac{k}{46}\approx 2k%
- Due carte in arrivo (turn+river): P(\text{hit})\circa 4k%
Tipiche uscite:
- Progetto di scala aperta: k = 8 → ~32% via fiume
- Progetto di colore dopo il flop: k = 9 → ~36% via fiume
- Due overcard (una delle quali è abbinata al river, rough): k\circa 6 → ~24%
Colore esatto al river dopo un 4-flush al flop (ne restano due).
Mancano entrambe le strade: \frac{39}{47}\cdot\frac{38}{46}\approx 0.676
Così colpito dal fiume: 1-0.676=0.324 ; (32.4%) — perfettamente allineato con la regola del 4 (9 out → ~36%).
5) Python: verifica i conteggi, stampa la tabella delle probabilità e simula
5.1 Conta e stampa le probabilità standard
import math
def nCk(n, k): return math.comb(n, k)
total = nCk(52, 5)
counts = {
"royal_flush": 4,
"straight_flush_ex_royal": 36,
"four_of_a_kind": 624,
"full_house": 3744,
"flush_ex_straight_flush": 5108,
"straight_ex_straight_flush": 10200,
"three_of_a_kind": 54912,
"two_pair": 123552,
"one_pair": 1098240,
"high_card": 1302540,
}
for hand, c in counts.items():
p = c / total
print(hand, c, f"{100*p:.6f}% (1 in {round(1/p):,})")
5.2 Pot-Odds e EV Helpers (regola del 4/2 integrata)
def break_even_prob_to_call(to_call, pot_before_call):
pot_after_call = pot_before_call + to_call
return to_call / pot_after_call
def approx_hit_prob(outs, cards_to_come=2):
if cards_to_come == 2: return min(1.0, outs * 4 / 100)
if cards_to_come == 1: return min(1.0, outs * 2 / 100)
raise ValueError("cards_to_come must be 1 or 2")
def call_chip_ev(to_call, pot_before_call, win_prob):
pot_after_call = pot_before_call + to_call
return win_prob * pot_after_call - (1 - win_prob) * to_call
# Example: flush draw after flop (9 outs), pot $90, need to call $10
to_call, pot = 10, 90
p_be = break_even_prob_to_call(to_call, pot)
p_est = approx_hit_prob(outs=9, cards_to_come=2)
ev = call_chip_ev(to_call, pot, p_est)
print("Break-even:", round(100*p_be, 2), "% | Est. win prob:", round(100*p_est, 2), "% | EV:", round(ev, 2))
5.3 Tiny Monte Carlo (Heads-Up, molto semplificato)
Questa simulazione approssimativa valuta le tue carte coperte rispetto a una mano casuale, distribuendo 5 carte comuni e confrontando le 5 migliori.
import random from collections import Counter from itertools import combinations ranks = "23456789TJQKA"; suits = "CDHS" deck = [r+s for r in ranks for s in suits] def hand_rank_5(cards5): rs = [c[0] for c in cards5]; ss = [c[1] for c in cards5] is_flush = len(set(ss)) == 1 vals = sorted([ranks.index(r) for r in rs]) is_straight = all(vals[i]+1 == vals[i+1] for i in range(4)) or vals == [0,1,2,3,12] cnt = Counter(rs).most_common() pattern = sorted([c for _, c in cnt], reverse=True) if is_straight and is_flush: cat = 8 elif pattern == [4,1]: cat = 7 elif pattern == [3,2]: cat = 6 elif is_flush: cat = 5 elif is_straight: cat = 4 elif pattern == [3,1,1]: cat = 3 elif pattern == [2,2,1]: cat = 2 elif pattern == [2,1,1,1]: cat = 1 else: cat = 0 order = [] for r,c in sorted(cnt, key=lambda x:(x[1], ranks.index(x[0])), reverse=True): order += [r]*c key = tuple(sorted([ranks.index(r) for r in order], reverse=True)) return (cat, key) def best_5_from_7(cards7): best = None for comb in combinations(cards7, 5): rank = hand_rank_5(comb) if best is None or rank > best: best = rank return best def simulate_heads_up(hole_hero, iters=5000): wins = ties = 0 for _ in range(iters): d = deck.copy() for c in hole_hero: d.remove(c) random.shuffle(d) villain = d[:2]; board = d[2:7] hero_best = best_5_from_7(hole_hero + board) vill_best = best_5_from_7(villain + board) if hero_best > vill_best: wins += 1 elif hero_best == vill_best: ties += 1 return (wins + 0.5*ties) / iters # Example: AK suited print("AKs win rate (est.):", round(100*simulate_heads_up(["A S".replace(" ",""), "K S".replace(" ","")], iters=8000), 2), "%")
6) Dal conteggio alla strategia: studia i margini
La tabella fornisce le probabilità esatte per una mano a 5 carte. Le decisioni nel Texas Hold'em reale sono condizionali: il flop, il turn e il river rivelano informazioni che modificano il ventaglio di risultati possibili. Utilizza la regola del 4 e del 2 per approssimazioni rapide e verifica la plausibilità con il valore atteso (EV). In caso di dubbio, simula.
7) Consigli di studio / Lista di controllo pratica
- Memorizza la tabella delle 5 carte e scopri quali mani sono davvero rare.
- Esercizi di esercitazione e regola del 4/2 fino all'istante.
- Confronta sempre la probabilità di vincita con il pareggio p^*.
- Registra le mani che hai trovato vicine: ricalcolale più tardi con i calcoli esatti.
- Utilizzare piccoli esperimenti Monte Carlo per calibrare l'intuizione.
Conclusione
La combinatoria ti dice quanto è rara ogni mano di 5 carte. La probabilità condizionata e le approssimazioni (out, regola del 4/2) rendono possibili decisioni rapide. EV e pot odds traducono le convinzioni in azioni, e piccole simulazioni convalidano il tuo ragionamento. Non eliminerai l'incertezza, ma sostituirai le congetture con struttura e disciplina.

