23 - Ventitre persone bastano: il paradosso dei compleanni
04-09-2026
Probabilità e combinatoria nei giochi — Estensioni operative
MATH
04-09-2026
Probabilità e combinatoria nei giochi — Estensioni operative
Entriamo in una stanza con:
23 persone
e facciamo una domanda apparentemente innocua:
Qual è la probabilità che almeno due siano nate nello stesso giorno dell'anno?
Ci sono:
365 giorni
quindi l'intuizione tende a suggerire che 23 persone siano troppo poche.
Ventitré è appena:
6,3%
di 365.
Eppure la probabilità di almeno un compleanno condiviso è già superiore al:
50%
Il punto non è memorizzare il numero 23.
È capire perché la nostra intuizione sta contando il problema sbagliato.
In Maîtriser l'incertain, Mathieu Agelou usa proprio il paradosso dei compleanni come esempio della distanza tra ciò che ci sembra casuale e ciò che la probabilità produce davvero.
Il libro pone la domanda:
qual è il numero minimo di persone
per cui la probabilità di almeno un compleanno condiviso
supera il 50%?
e indica:
23
Agelou osserva anche che tendiamo spontaneamente a immaginare date distribuite in modo troppo regolare durante l'anno.
Ora ricostruiamo il risultato passo per passo.
Codenotti e Resta introducono il problema richiamando una discussione nel romanzo Polvere di Luna di Arthur C. Clarke. Il valore didattico dell'aneddoto è soprattutto questo: costringe a fare una previsione prima di vedere il risultato.
Nel modello ideale che useremo qui:
23 persone -> probabilità di almeno una coppia > 50%
36 persone -> circa 83,2%
57 persone -> oltre 99%
70 persone -> oltre 99,9%
La sorpresa nasce perché l'intuizione tende a confrontare 23 direttamente con 365, mentre il problema confronta fra loro tutte le coppie di persone.
Fonte di contesto e soglie: Bruno Codenotti e Giovanni Resta, La logica dell'incertezza, cap. 2. Il valore esatto usato nell'articolo continua a essere calcolato indipendentemente.
Per mantenere il problema pulito assumiamo:
365 giorni
ignoriamo il:
29 febbraio
e consideriamo tutti i giorni dell'anno:
equiprobabili
Assumiamo inoltre che i compleanni delle persone siano:
indipendenti
Queste sono semplificazioni del modello.
Nella popolazione reale le nascite non sono perfettamente uniformi durante l'anno.
Ma il celebre risultato 23 appartiene proprio a questo modello ideale.
Con 23 persone potremmo avere:
una coppia con lo stesso compleanno
due coppie diverse
tre persone nello stesso giorno
una tripletta più un'altra coppia
...
Contare direttamente tutti i modi in cui può verificarsi:
almeno una coincidenza
diventa rapidamente scomodo.
Abbiamo già incontrato più volte una strategia migliore:
calcoliamo il contrario.
L'evento complementare di:
almeno due condividono il compleanno
è:
tutti hanno compleanni diversi
Questa seconda frase è molto più facile da contare.
Con una sola persona non possiamo avere coincidenze.
La prima persona può avere un compleanno qualsiasi:
365/365
=
1
Perché abbiano compleanni diversi:
prima persona:
qualunque giorno
seconda persona:
deve evitare il giorno della prima
Quindi:
P(tutti diversi con 2 persone)
=
365/365
·
364/365
La terza deve evitare i due giorni già occupati:
363
giorni disponibili su 365.
Quindi:
P(tutti diversi con 3 persone)
=
365/365
·
364/365
·
363/365
Il pattern è ormai visibile.
Con n persone:
P(tutti diversi)
=
365/365
·
364/365
·
363/365
·
...
·
(365-n+1)/365
oppure:
P(tutti diversi)
=
∏ da i=0 a n-1
(365-i)/365
La probabilità che almeno due condividano il compleanno è quindi:
P(coincidenza)
=
1
-
P(tutti diversi)
Questo è il complementare che ci serve.
Per 22 persone:
P(coincidenza)
≈
47,57%
Quindi siamo ancora sotto il 50%.
Con 23 persone:
P(coincidenza)
≈
50,73%
Abbiamo superato la metà.
Quindi il primo valore per cui:
P(coincidenza) > 50%
è proprio:
23
Non perché 23 sia vicino a metà di 365.
Ma perché stiamo creando molte coppie possibili di persone.
Con 23 persone, quante coppie possiamo formare?
C(23,2)
=
23·22/2
=
253
Non stiamo confrontando una singola persona con i 365 giorni.
Abbiamo:
253 coppie
che possono potenzialmente condividere un compleanno.
Questa è la ragione intuitiva per cui la probabilità cresce molto più rapidamente di quanto immaginiamo.
Attenzione però:
$$ 253/365 $$
non è la probabilità di almeno una coincidenza.
Le coppie non costituiscono eventi disgiunti.
Ma il numero 253 spiega bene perché 23 persone generino già molte occasioni di collisione.
Per ogni coppia specifica:
P(stesso compleanno)
=
1/365
Con 253 coppie, il numero atteso di coppie coincidenti è:
253/365
≈
0,693
Questo valore non è:
P(almeno una coincidenza)
che vale circa:
0,507
Sono grandezze diverse.
Una stessa configurazione può infatti contenere più di una coppia coincidente.
È un ottimo esempio del motivo per cui:
valore atteso di un conteggio
e:
probabilità che il conteggio sia almeno 1
non sono la stessa cosa.
Un'altra distinzione proposta da Codenotti e Resta aiuta a capire il “paradosso”. Con 23 persone possiamo chiedere:
Esiste qualche coppia che condivide il compleanno?
oppure:
Tra queste 23 persone, almeno una ha una data specifica fissata in anticipo, per esempio il mio compleanno?
La prima è una domanda di collisione fra tutte le date osservate e vale circa:
$$ 50{,}73%. $$
Per la seconda, fissata in anticipo una particolare data, ogni persona evita quella data con probabilità 364/365. Quindi:
1-\left(\frac{364}{365}\right)^{23} \approx6{,}12%. $$
La differenza è enorme perché nel primo caso non abbiamo deciso in anticipo quale compleanno debba ripetersi: qualunque collisione fra le molte coppie va bene.
Questo schema tornerà quando parleremo di selezione ex post e coincidenze: “un evento preciso” e “qualche evento interessante fra moltissime possibilità” non sono la stessa domanda probabilistica.
Fonte di contesto: Bruno Codenotti e Giovanni Resta, La logica dell'incertezza, cap. 2, sezione sulle collisioni. Il valore 6,12% è ricalcolato dalla formula qui riportata.
Possiamo vedere il problema anche come conteggio di assegnazioni ordinate.
Per 23 persone, ognuna può avere uno dei 365 giorni:
$$ 365^{23} $$
assegnazioni possibili.
Per avere tutti compleanni differenti:
prima persona: 365 possibilità
seconda: 364
terza: 363
...
ventitreesima: 343
Quindi:
assegnazioni senza coincidenze
=
365·364·...·343
Le assegnazioni con almeno una coincidenza sono:
365^23
-
365·364·...·343
e quindi:
P(coincidenza)
=
365^23 - 365·364·...·343
--------------------------
365^23
È esattamente la stessa probabilità ottenuta con il prodotto dei complementari.
Per dare un'idea:
20 persone
→ circa 41,14%
22 persone
→ circa 47,57%
23 persone
→ circa 50,73%
30 persone
→ circa 70,63%
50 persone
→ circa 97,04%
Quindi in una classe abbastanza numerosa la coincidenza non è affatto sorprendente.
È l'assenza totale di coincidenze che diventa rapidamente meno probabile.
La domanda:
Qual è la probabilità che qualcuno abbia il mio stesso compleanno?
è molto diversa da:
Qual è la probabilità che qualunque coppia condivida un compleanno?
Nel primo caso, con 22 altre persone, abbiamo soltanto:
22 confronti
contro una data fissata.
Nel secondo caso, con 23 persone, abbiamo:
253 coppie
potenziali.
La nostra intuizione tende spesso a trasformare mentalmente il secondo problema nel primo.
Ed è per questo che una risposta attorno a 180 sembra inizialmente plausibile.
Invece di hard-codare il risultato possiamo farlo trovare al programma.
Partiamo da:
$$ n = 1 $$
e calcoliamo:
P(coincidenza con n persone)
finché:
$$ P > 0,5 $$
Il primo n trovato deve essere:
23
Questo è un buon controllo perché il codice non riceve 23 come dato.
Lo scopre.
Lo standalone C# associato a questo articolo è:
ParadossoCompleanni.cs
La versione più semplice aggiorna progressivamente la probabilità che tutti i compleanni siano diversi:
static double ProbabilitaCoincidenza(
int persone)
{
if (persone < 0)
throw new ArgumentOutOfRangeException(
nameof(persone));
if (persone > 365)
return 1.0;
double tuttiDiversi = 1.0;
for (int i = 0; i < persone; i++)
{
tuttiDiversi *=
(365.0 - i)
/
365.0;
}
return
1.0 - tuttiDiversi;
}
Per:
ProbabilitaCoincidenza(23)
otteniamo circa:
50,7297%
static int PrimaSoglia(
double soglia)
{
for (int persone = 1;
persone <= 366;
persone++)
{
if (ProbabilitaCoincidenza(persone) > soglia)
return persone;
}
throw new InvalidOperationException();
}
Con:
PrimaSoglia(0.5)
il risultato è:
23
Per 23 persone il numeratore e il denominatore diventano enormi.
Ma C# dispone di:
BigInteger
Possiamo quindi calcolare esattamente:
totale
=
365^23
e:
tutti diversi
=
365·364·...·343
senza perdita di precisione intera.
Solo alla fine convertiamo il rapporto in double per visualizzare la percentuale.
Questo segue lo stesso principio usato negli articoli di combinatoria:
conteggio esatto prima
decimale dopo
Potremmo simulare classi da 23 persone:
La frequenza dovrebbe avvicinarsi a:
50,73%
Ma qui il calcolo esatto è semplice.
Quindi, coerentemente con il criterio già fissato nel confronto tra calcolo esatto e Monte Carlo:
formula esatta
prima
e Monte Carlo soltanto come eventuale verifica.
Per n non troppo grande rispetto a 365 si incontra anche l'approssimazione:
P(coincidenza)
≈
1
-
exp(
-n(n-1)
--------
2·365
)
Per 23 persone produce un valore vicino al risultato esatto.
È utile per capire l'ordine di grandezza e il legame con il numero di coppie:
$$ n(n-1)/2 $$
ma non ci serve per risolvere il problema.
Il risultato esatto è già pratico da calcolare.
L'approssimazione precedente contiene una piccola sorpresa numerica.
Con 23 persone ci sono:
$$ \binom{23}{2}=253 $$
coppie, quindi l'esponente vale:
$$ \frac{253}{365} \approx 0{,}6931507. $$
Ma:
$$ \ln 2 \approx 0{,}6931472. $$
Sono quasi uguali. Perciò:
\frac12. $$
Numericamente l'approssimazione dà circa:
$$ 50{,}0002%. $$
Il valore esatto è invece:
$$ 50{,}7297%. $$
Quindi 23 non è un numero magico: emerge perché il numero di coppie è arrivato quasi esattamente a:
$$ 365\ln2. $$
L'approssimazione non sostituisce il calcolo esatto, ma spiega molto bene perché la soglia del 50% compare proprio in quella zona.
Spunto didattico: David J. Hand, Il caso non esiste, sul ruolo del numero di coppie/opportunità nelle coincidenze. I valori dell'approssimazione sono ricalcolati direttamente.
Il paradosso dei compleanni non è un trucco.
È una conseguenza di tre idee che abbiamo già costruito nella serie:
complementare
principio del prodotto
combinazioni di coppie
Con n persone:
P(almeno una coincidenza)
=
1
-
∏(365-i)/365
Per:
$$ n = 22 $$
siamo ancora sotto il 50%.
Per:
$$ n = 23 $$
otteniamo circa:
50,73%
Il motivo intuitivo è che 23 persone generano:
253
coppie possibili.
La domanda non confronta 23 persone con 365 giorni: confronta moltissime coppie tra loro.
Nel prossimo articolo resteremo sul problema della nostra intuizione del caso.
Genereremo vere sequenze casuali e misureremo:
alternanze
run
streak
cluster
per capire perché il caso reale produce gruppi e serie molto più spesso di quanto il nostro cervello consideri "casuale".