Samaritani e la sua formula

Questa pagina è un appendice alla FAQ sui ritardi.

Il discorso della formula di Samaritani è una cosa un po' a parte, allora per adesso lo metto in una pagina web tutta sua. Anche perche' col LaTeX sono ancora molto lento.

I ritardisti sono molto affezionati alla formula di Samaritani. Un mio amico (Dani Ferrari, autore di un articolo anti-ritardi sul numero gennaio '99 di Mc-Microcomputer) è andato a vedere il libro di Samaritani alla biblioteca nazionale a Roma e dice che secondo lui Samaritani non era ritardista. Gorgia (il guru dei ritardisti italiani, ma vedi il paragrafo sotto) non ha capito cosa Samaritani voleva dire, e tutti gli altri ritardisti credono ciecamente a quello che dice Gorgia.

Nota: Ho ricevuto una email secondo la quale anche Gorgia sarebbe una vittima dei ritardisti. Fingono di citare lui mentre in realtá inventono cose loro. Boh. Secondo questa versione delle cose, allora, i ritardisti credono ciecamente in cose che Gorgia non ha detto, ma che altri ritardisti dicono che Gorgia abbia detto. Non capisco perchè Gorgia scriverebbe libri sul lotto se ritiene che non importa quali numeri giochi, e nemmeno perché i giocatori del lotto comprerebbero tali libri. A questo punto, dovrò cercare del materiale di Gorgia non inventato dai ritardisti.

I ritardisti citano la formula di Samaritani come se fosse un incantesimo, e solitamente non dicono da dove sarebbe venuta o cosa dovrebbe rappresentare il numero che ne esce. ("Ma come, non sai cosa vuol dire 'ritardo massimo teorico'? È un valore teorico! Non sai cos'e' un valore teorico?" No, non lo sappiamo. Cosa sarebbe il 'valore teorico' di una distribuzione?) Quindi, alcuni anti-ritardisti dicono che la formula è assurda. Purtroppo, non e' così (diversamente dalla formula di Gorgia per l'attendibilità, che sembra priva di senso e basta). Bisogna ricordare che i ritardisti non dicono soltanto cose false. Dicono anche cose vere ma irrilevanti. (Per esempio, citano una qualche legge dei grandi numeri.) La formula di Samaritani è irrilevante, in quanto non sostiene la tesi "conviene giocare i numeri ritardatari", ma non è balorda. Dire che è "vera" sarebbe un po' troppo, visto che non ha il significato che i ritardisti vorrebbero darle. Comunque, la formula di Samaritani fornisce un numero abbastanza vicino alla moda della distribuzione del massimo ritardo storico dopo n estrazioni, se n non è troppo piccolo. In particolare, l'ordine di grandezza é corretta - vedete Algorithms di Cormen et al. Il numero di Samaritani sarà solitamente inferiore al massimo ritardo storico, come vedremo di seguito, almeno quando n=6000;

Vediamo la (mia tentata ricostruzione della) derivazione della formula di Samaritani, di una sua estensione abbastanza logica, e del modo in cui io e altri abbiamo affrontato lo stesso problema su MC-Microcomputer. Ho anche fatto una simulazione del problema, visto che io e Samaritani abbiamo entrambi cercato di risolvere un problema diverso, essendo il problema originale troppo difficile da risolvere esattamente.

Per i miei scopi, il "ritardo" di un numero è il numero di estrazioni immediatemente precedenti in cui non è uscito. Un numero appena uscito ha, dunque, ritardo 0. Se preferisci dire che un numero appena uscito ha ritardo 1, i cambiamenti da fare sono abbastanza semplici.

Il problema: Abbiamo 10 "ruote" nella lotteria italiana. In ognuna ci sono 90 numeri. In una "estrazione", 5 numeri sono estratti senza rimpiazzio da ognuna delle 10 route, e poi sono ri-inserite. (Nota, per i miei scopi quello che succede ogni sabato è una estrazione, non 10 estrazioni.)

Tutte le 90C5 combinazioni di numeri hanno la stessa probabilità di apparire in una data ruota, e quello che succede in un'estrazione da una data ruota non dipende dai risultati precedenti di quella o altre ruote, né da cosa succede nella stessa estrazione in altre ruote.

In quanto segue, p=1/18 e q=17/18

Ognuno dei 900 numeri nella lotteria italiana ha un "ritardo", il numero di estrazioni da cui non esce. Un numero appena uscito ha un ritardo di 0. Dopo ogni estrazione, i ritardi dei 50 numeri che escono diventano 0. I ritardi degli altri 850 numeri aumentano di 1. L'intero sistema ha anche un "massimo ritardo storico", il ritardo maggiore visto finora. Dopo ogni estrazione, vediamo se uno dei 900 numeri ha un ritardo maggiore del massimo ritardo storico, e in tal caso aggiorniamo il massimo ritardo storico. Inizialmente, tutti i numeri hanno ritardo 0.

Samaritani si è posto il problema di stimare il massimo ritardo storico dopo n estrazioni. Spesso useremo n=6000 visto che la lotteria italiana esiste da circa 120 anni, ed è il valore usato da alcuni ritardisti nei loro esempi.

Che tipo di stima voleva fare Samaritani? Non lo so. Alcuni ritardisti sembrano credere che il valore che esce dalla formula di Samaritani dovrebbe essere inteso come un valore insolitamente alto per il massimo ritardo storico. Almeno uno dice che dovrebbe essere la moda della distribuzione del massimo ritardo storico dopo n estrazioni. Ma Samaritani voleva stimare il massimo ritardo, non (diciamo) il 95esimo percentile del massimo ritardo. Dire "il valore dovrebbe essere solitamente intorno a questo" e "il valore dovrebbe essere solitamente minore di questo" sono due cose diverse.

Se calcoliamo tutta la distribuzione del massimo ritardo storico dopo n estrazioni per vari valori di n, possiamo vedere dove si colloca il valore trovato da Samaritani.

Comunque, né io né Samaritani sappiamo risolvere il problema originale. Facciamo delle approssimazioni diverse, sperando di non introdurre errori troppo grandi.

Descrivo i due approcci, segnalando i problemi di entrambi.

Samaritani

Samaritani dice (più o meno): ogni volta che un numero esce, scriviamo su un pezzo di carta il ritardo che aveva all'estrazione precedente. Allora dopo n estrazioni avremo 50n valori. Diciamo che questi sono 50n osservazioni prese da una distribuzione geometrica. Quanto sarà grande il più alto di questi valori? Abbastanza grande che la probabilita' di ottenerlo da una distribuzione geometrica é 1/50n.

La distribuzione geometrica che usiamo é fatta così:

P(x<=k) = 1-q^(k+1), per k=0,...

(Le distribuzioni geometriche normalmente cominciano ad 1.)

I valori superiori a k hanno una probablità complessiva di q^(k+1). Quindi, dice Samaritani, se q^r = 1/50n, in 50n tentativi dovremmo vedere circa 1 valore >=r.

Allora, r = log_q (1/50n).

E questa è la formula di Samaritani citata, ma non spiegata, dai ritardisti. Dalla derivazione, è evidente che secondo Samaritani il ritardo massimo dovrebbe essere "intorno a" questo valore, o magari "almeno" questo valore. Certamente non dice che il ritardo massimo dovrebbe essere "quasi sempre minore di" questo valore.

Nota: Poisson

Facendo 50n prove, ognuna con una probabilita' di 1/50n di essere almeno il "numero samaritani", la media del numero di "violazioni Samaritani" è 1. la distribuzione del numero di violazioni e' una distribuzione Poisson con media 1. allora la probabilità di avere almeno una violazione (cioé, il massimo ritardo e' maggiore o uguale al numero Samaritani) è 1-1/e, circa 0.63. Quindi, il numero di Samaritani vorrebbe essere il 37esimo percentile della distribuzione del massimo ritardo storico dopo n estrazioni. Non è immediatamente chiaro che questo valore sia necessariamente la moda.

Problemi con questo modello

Se il massimo ritardo appare alla fine delle n estrazioni, il numero non è uscito e il massimo ritardo segnato sul pezzo di carta è troppo basso: ci sono stati ritardi maggiori, ma non ce ne siamo accorti. Non e' vero che i numeri sono presi da una distribuzione geometrica: i primi 50 numeri sono tutti zeri, i prossimi 50 sono tutti minori di 2, i prossimi 50 sono tutti minori di 3, ecc. Per n molto basso, questo modello è chiaramente inadeguato.

Estensione al metodo Samaritani

Cerchiamo di calcolare tutta la distribuzione del massimo ritardo storico dopo n estrazioni, usano l'ottica di Samaritani.

Ok. Abbiamo 50n osservazioni prese da una distribuzione geometrica P(x<=k) = 1-q^(k+1), per k=0,...

Qual è la probabilità che il massimo valore fra questi 50n sia <=k? È la probabilità che sono TUTTI <=k.

Allora, sia m il massimo dei 50n numeri.

P(m<=k) = (1-q^(k+1))^50n

Ecco un programma che calcola tutte queste probabilita'

Ecco i risultati per n=6000, con qualche commento:

log_q(1/(50*6000)) = 220.6

Dalla tabella, P(m<=220.6) = 0.3754094366458

Metodo alternativo

Questo metodo è stato proposto da Elio Fabri e Francesco Romani dell'Università di Pisa. L'idea di base qui è di calcolare esattamente la distribuzione della lunghezza del massimo blocco di croci in n lanci di una moneta, e poi trattare il lotto come 900 monete lanciate simultaneamente.

Consideriamo una moneta sbilanciata, che esce testa con probabilità p=1/18 e croce con probabilità q=17/18. Lanciare questa moneta n volte è come guardare un particolare numero della lotteria per n estrazioni. (diciamo 1 a Roma). testa = il numero esce, croce = il numero non esce.

un "ritardo" è un blocco di croci. Il ritardo massimo storico dopo n lanci è la lunghezza del blocco più lungo di croci che ci sia stato.

Possiamo descrivere esattamente la distribuzione del ritardo massimo storico in questo caso.

Definiamo h(n,r) "la probabilità che dopo n lanci non ci sia ancora stato un ritardo di lunghezza r"

Se m è il massimo ritardo,

P(m<=k) = h(n,k+1)

Se non c'è stato un ritardo di k+1, vuol dire che il massimo ritardo è minore o uguale a k.

Quindi, se possiamo calcolare h, sappiamo tutto.

Qualche osservazione banale:

h(n,r)=1 quando r>n.
h(n,n)=1-q^n

altrimenti,

h(n,r) = h(n-1,r) - h(n-r-1,r)pq^r

questo perché se non c'è stato un ritardo di r dopo n-1 lanci, non ci sarà nemmeno dopo n, a meno che non ci sia stato un blocco di lunghezza n-r-1 senza ritardi di r, poi una testa, poi r croci di fila.

Per rispondere al problema originale, facciamo finta che i 900 numeri della lotteria italiana siano 900 monete indipendenti. Questo non è vero, naturalmente, visto che esattamente 5 numeri in ogni gruppo di 90 devono uscire ad ogni estrazione.

Chiamiamo M il massimo ritardo di tutte e 900 le monete.

P(M<=k) = h(n,k+1)^900

Ecco un programma per calcolare h(6000,r)^900 per r fra 1 a 6001, e quindi P(M<=k) per k da 0 a 6000

Ed ecco i risultati

Finalmente, visto che io e Samaritani non stavamo rispondendo alla domanda originale, ecco una simulazione

Ed ecco una tabella di frequenza dei suoi risultati, con probabilita' cumulative, e qualche altra cosa.

Ad occhio, direi che io, Samaritani e la simulazione diano risposte abbastanza simili.

In ogni caso, il massimo ritardo dopo 6000 estrazioni è normalmente superiore al 220.6 che esce dalla formula di Samaritani. Quindi, i ritardisti sbagliano se dicono che 220 sia un "tetto" di qualche tipo. E alcuni ritardisti parlano come se lo fosse.

La formula di Samaritani è "vera"? Se vuole stimare la moda di questa distribuzione (o qualcosa del genere), potremmo dire di sì. Ma i ritardisti vogliono usarlo per dare un qualche tipo di tetto al massimo ritardo, e sbagliano.

Comunque, tutto questo è irrilevante. La formula di Samaritani, "vera" o no, non sostiene la tesi dei ritardisti. Loro vorrebbero usare la formula di Samaritani per giustificare la loro tesi che "convenga" in qualche modo giocare i numeri ritardatari.

Sfortuatamente per loro, le estrazioni del lotto sono indipendenti. La probabilità che un dato numero esca all'estrazione successiva è sempre 1/18. La probabilità che un dato numero esca entro le prossime k estrazioni e' sempre 1-(17/18)^k. Giocare i numeri ritardatari non da' alcun vantaggio al giocatore. La formula di Samaritani è irrilevante, perché non puoi andare alla ricevitoria e dire "secondo me il blocco di assenze più lungo nei prossimi 120 anni sarà 220".

Ecco un altro programma che calcola solamente la moda per n da 1 in su, usando il metodo Fabri/Romani. Stampa anche il valore previsto da Samaritani. Il programma é stato scritto per una ruota sola. Cambiate $coins in 900 se volete fare tutta la lotteria italiana. Ecco qualche risultato:

1 1 28
2 2 40
3 3 47
4 4 52
5 5 56
6 6 60
7 7 62
8 8 65
9 9 67
10 10 68
11 11 70
12 12 72
13 13 73
14 14 74
15 15 76
16 16 77
17 17 78
18 18 79
19 19 80
20 20 81
21 21 81
22 22 82
23 23 83
24 24 84
25 25 84
26 26 85
27 27 86
28 28 86
29 29 87
30 30 88
31 31 88
32 32 89
33 33 89
34 34 90
35 35 90
36 36 91
37 37 91
38 38 92
39 39 92
40 40 93
41 41 93
42 42 94
43 43 94
44 44 94
45 45 95
46 46 95
47 47 96
48 48 96
49 49 96
50 50 97
51 51 97
52 52 97
53 53 98
54 54 98
55 55 98
56 56 99
57 57 99
58 58 99
59 59 99
60 60 100
61 61 100
62 62 100
63 63 101
64 64 101
65 65 101
66 66 101
67 67 102
68 68 102
69 69 102
70 70 102
71 71 103
72 72 103
73 73 103
74 74 103
75 75 104
76 76 104
77 77 104
78 78 104
79 79 105
80 80 105
81 81 105
82 82 105
83 83 105
84 84 106
85 85 106
86 86 106
87 87 106
88 88 106
89 89 107
90 90 107
91 91 107
92 92 107
93 93 107
94 94 108
95 95 108
96 96 108
97 97 108
98 98 108
99 99 109
100 100 109
101 101 109
102 102 109
103 103 109
104 104 109
105 105 110
106 106 110
107 107 110
108 108 110
109 109 110
e fino a qui la formula di Samaritani fornisce risultati che sono impossibili. Andiamo avanti...

139 139 114
140 140 115
141 141 115
142 100 115
145 101 115
ad un certo punto, la moda non é più n, e salta verso il basso. Ma Samaritani non se ne accorge.

969 146 148
E per valori molto più alti (sopra 5000, diciamo) le risposte sono uguali.

Ma é sempre inutile conoscere questo valore. Le probabilità di uscita dei numeri non cambiano se le estrazioni sono indipendenti. E se non credi che le estrazioni sono indipendenti, non puoi usare i calcoli miei o di Samaritani.

Forse fra le molte cose che i ritardisti non capiscono (o fingono di non capire) dobbiamo mettere a priori e a posteriori? Sembra di sì.


ghira@mistral.co.uk