Salta al contenuto
Note per Studenti Esercizio - aggiornamenti del massimo corrente in una scansione (record)

Esercizio - aggiornamenti del massimo corrente in una scansione (record)

Teoria: 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 → (record).

Testo. Il codice seguente cerca il massimo di un array a di nn numeri distinti, dati in ordine casuale (ogni ordine con probabilità 1/n!1/n!), e conta quante volte l'assegnazione m = x viene eseguita.

python
a = [5, 2, 8, 1, 9, 3]                 # un ordine possibile
m, aggiornamenti = float("-inf"), 0
for x in a:
    if x > m:
        m = x
        aggiornamenti += 1
print(m, aggiornamenti)                # 9 3 (aggiorna con 5, 8, 9)
  1. Calcolare il valore atteso del numero di aggiornamenti RR per n=3n=3 elencando tutti gli ordini.
  2. Calcolarlo per nn generico con le variabili indicatrici, e poi per n=10n=10 e n=1000n=1000.
  3. Qual è la probabilità che l'ultimo elemento causi un aggiornamento? E che gli aggiornamenti siano nn?
  4. Verificare con una simulazione.

Soluzione

1. Enumerazione (n=3n=3). Gli ordini di {1,2,3}\{1,2,3\} sono 66 e gli aggiornamenti sono:

  • 123123: aggiorna a 1,2,31,2,3 (33);
  • 132132: 1,31,3 (22);
  • 213213: 2,32,3 (22);
  • 231231: 2,32,3 (22);
  • 312312: solo 33 (11);
  • 321321: solo 33 (11).

Somma 3+2+2+2+1+1=113+2+2+2+1+1=11, media 116≈1,833\frac{11}6\approx1{,}833.

2. Indicatrici. L'elemento in posizione ii provoca un aggiornamento (è un record) se è il massimo dei primi ii elementi. I primi ii elementi sono in ordine casuale e il massimo di essi può trovarsi in ciascuna delle ii posizioni con la stessa probabilità 1i\frac1i (simmetria), quindi P(Ii=1)=1iP(I_i=1)=\frac1i. Per linearità E[R]=∑i=1n1i=Hn.E[R]=\sum_{i=1}^n\frac1i=H_n. Per n=3n=3: 1+12+13=1161+\frac12+\frac13=\frac{11}6, in accordo con l'enumerazione. Per n=10n=10: H10=73812520≈2,929H_{10}=\frac{7381}{2520}\approx2{,}929. Per n=1000n=1000: H1000≈ln⁡1000+0,5772+12000=6,9078+0,5772+0,0005=7,4855H_{1000}\approx\ln1000+0{,}5772+\frac1{2000}=6{,}9078+0{,}5772+0{,}0005=7{,}4855. Il massimo viene riassegnato meno di 88 volte su mille elementi.

3. Casi particolari. L'ultimo elemento è un record se è il massimo di tutti: probabilità 1n\frac1n. Tutti gli elementi sono record solo nell'ordine crescente, che ha probabilità 1n!\frac1{n!} (per n=3n=3: 16\frac16, il solo caso 123123).

4. Simulazione.

python
import random
n, T, tot = 10, 100000, 0
for _ in range(T):
    p = random.sample(range(n), n); m = -1
    for x in p:
        if x > m: m = x; tot += 1
print(tot / T)    # circa 2.93

Risultato. E[R]=HnE[R]=H_n: 116\frac{11}6 per n=3n=3, 2,9292{,}929 per n=10n=10, 7,4867{,}486 per n=1000n=1000; P(ultimo eˋ record)=1nP(\text{ultimo è record})=\frac1n.

Verifica Python: enumerazione esatta per n=3,4,6n=3,4,6 (116,2512,4920\frac{11}6,\frac{25}{12},\frac{49}{20}, uguali a HnH_n); simulazione n=10n=10.

Versione ripasso

Teoria collegata