Esercizio - Paradosso del compleanno e collisioni di un hash a 32 bit
Teoria: Palline e urne - compleanno, carico massimo e approssimazione di PoissonModello palline e urne (m palline, n urne, scelte indipendenti e uniformi): paradosso del compleanno con soglia sqrt(2 n ln 2), urne vuote attese n e^(-m/n), carico massimo ln n / ln ln n con dimostrazione (first moment e union bound), approssimazione di Poisson con il fattore e sqrt(m), potere delle due scelte (ln ln n / ln 2).Palline e urne - compleanno, carico massimo e approssimazione di Poisson → (soglia del compleanno), Calcolo combinatorio per la probabilitàNegli spazi uniformi bisogna contare: principio di moltiplicazione, disposizioni con ripetizione n^k, disposizioni semplici n!/(n−k)!, permutazioni n!, combinazioni (n su k); estrazioni con e senza reinserimento e distribuzione ipergeometrica.Calcolo combinatorio per la probabilità →.
Testo. Si lanciano palline in urne in modo uniforme e indipendente. Con le palline sono persone e le urne i giorni dell'anno (anni non bisestili, compleanni uniformi).
- Dimostrare, con il limite , che basta per avere probabilità di collisione almeno e che non è dimostrato dallo stesso limite. Calcolare poi le probabilità esatte per e .
- Quante persone servono per avere probabilità almeno di un compleanno comune?
- Un sistema genera identificatori con un hash a bit ( valori, uniformi). Dopo quanti identificatori la probabilità di collisione supera ? E quella di ?
- Per calcolare il numero atteso di coppie con lo stesso compleanno e spiegare perché non coincide con la probabilità di almeno una coppia.
- Calcolare il numero atteso di persone da interrogare fino alla prima coincidenza (compresa) per .
Soluzione
1. Limite superiore. La persona ( già presenti) evita i giorni occupati con probabilità , quindi , dove si è usato e . Si vuole che il membro di destra sia : Con : (di un soffio). Con : , il limite non basta (e infatti la probabilità esatta è sotto ). Esatto: vale per e per ; il limite dà e .
2. Si cerca il minimo con : per si ha meno di e per si ottiene . Dal limite: dà , : è dimostrato, il valore esatto è appena sotto.
3. La formula approssimata viene dall'esponenziale. Per : ; il calcolo esatto del prodotto dà che servono identificatori (probabilità ), non bastano. Per : e il valore esatto è (con la probabilità è ). Quindi un hash a bit non è adatto a identificare in modo unico decine di migliaia di oggetti.
4. Per la linearità il numero atteso di coppie coincidenti è . Non è la probabilità di almeno una coppia (): la variabile = numero di coppie può valere più di (tre persone con lo stesso compleanno formano coppie; due coppie disgiunte ne danno ). Vale sempre (Markov), qui ; la differenza misura la sovrapposizione degli eventi.
5. = numero di persone fino alla prima coincidenza. significa nessuna coincidenza tra le prime , quindi e (il termine vale , e i termini sono nulli da ). Coincide con la formula asintotica (si noti che la mediana è , la media ).
Codice di verifica
from math import log, log1p, exp, sqrt
def p_coll(m, n):
"""Probabilità di almeno una collisione con m palline in n urne."""
if m > n: # più palline che urne: collisione certa
return 1.0
return 1 - exp(sum(log1p(-i / n) for i in range(m)))
def minimo(p, n):
lo, hi = 1, 10 ** 6
while lo < hi: # ricerca binaria: p_coll è crescente in m
mid = (lo + hi) // 2
lo, hi = (lo, mid) if p_coll(mid, n) >= p else (mid + 1, hi)
return lo
print(p_coll(22, 365), p_coll(23, 365))
print(minimo(0.99, 365), minimo(1e-3, 2**32), minimo(0.5, 2**32))
print(sum(1 - p_coll(k, 365) if k else 1 for k in range(366))) # E[T]Risultato: 0.4757 0.5073, poi 57 2933 77164, infine 24.6166.
Versione ripasso
- Limite. (da e ). Soglia : ; basta, no (Palline e urne - compleanno, carico massimo e approssimazione di PoissonModello palline e urne (m palline, n urne, scelte indipendenti e uniformi): paradosso del compleanno con soglia sqrt(2 n ln 2), urne vuote attese n e^(-m/n), carico massimo ln n / ln ln n con dimostrazione (first moment e union bound), approssimazione di Poisson con il fattore e sqrt(m), potere delle due scelte (ln ln n / ln 2).Palline e urne - compleanno, carico massimo e approssimazione di Poisson →).
- Esatti (). : ; : (limite e ); a (limite: , ).
- Hash a bit. ; esatti: identificatori per (formula ), per ( dà ).
- Coppie attese. : può superare (tre persone uguali danno coppie); per Markov (Linearità del valore atteso e variabili indicatriciLa linearità $E[X+Y]=E[X]+E[Y]$ vale sempre, anche senza indipendenza; con le variabili indicatrici ($E[I_A]=P(A)$) trasforma un conteggio in una somma di probabilità. Applicazioni: attesa del primo successo $1/p$, collezionista di figurine $nH_n$, punti fissi di una permutazione (media $1$), record (media $H_n$), inversioni ($n(n-1)/4$), attesa condizionata, identità di Wald $E[S_N]=E[N]E[X]$.Linearità del valore atteso e variabili indicatrici →).
- Prima coincidenza. .
- Errore tipico. Credere che servano persone: la soglia è .