Esercizio - aggiornamenti del massimo corrente in una scansione (record)
Testo. Il codice seguente cerca il massimo di un array a di numeri distinti, dati in ordine casuale (ogni ordine con probabilità ), e conta quante volte l'assegnazione m = x viene eseguita.
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)- Calcolare il valore atteso del numero di aggiornamenti per elencando tutti gli ordini.
- Calcolarlo per generico con le variabili indicatrici, e poi per e .
- Qual è la probabilità che l'ultimo elemento causi un aggiornamento? E che gli aggiornamenti siano ?
- Verificare con una simulazione.
Soluzione
1. Enumerazione (). Gli ordini di sono e gli aggiornamenti sono:
- : aggiorna a ();
- : ();
- : ();
- : ();
- : solo ();
- : solo ().
Somma , media .
2. Indicatrici. L'elemento in posizione provoca un aggiornamento (è un record) se è il massimo dei primi elementi. I primi elementi sono in ordine casuale e il massimo di essi può trovarsi in ciascuna delle posizioni con la stessa probabilità (simmetria), quindi . Per linearità Per : , in accordo con l'enumerazione. Per : . Per : . Il massimo viene riassegnato meno di volte su mille elementi.
3. Casi particolari. L'ultimo elemento è un record se è il massimo di tutti: probabilità . Tutti gli elementi sono record solo nell'ordine crescente, che ha probabilità (per : , il solo caso ).
4. Simulazione.
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.93Risultato. : per , per , per ; .
Verifica Python: enumerazione esatta per (, uguali a ); simulazione .
Versione ripasso
- Aggiornamento in posizione l'elemento è il massimo dei primi : probabilità per simmetria; la linearità non richiede indipendenza (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 →).
- . : enumerazione , media . : . : .
- ; (solo ordine crescente).
- Verifica: enumerazione e simulazione .
- Errore tipico: scrivere o (è , a meno di una costante).