
Come generare la stessa sequenza di numeri casuali su Octave
In questa lezione ti spiego come ottenere la stessa sequenza di valori random quando avvii Octave
Come funziona la generazione dei numeri casuali? I numeri casuali sono generati a partire da una lista predefinita di numeri pseudocasuali secondo una distribuzione statistica. A differenza di Matlab, Octave inizializza la sequenza all'avvio della sessione usando l'orologio del computer come chiave. Quindi la sequenza dei numeri casuali è sempre diversa.
Per generare la stessa sequenza di numeri casuali salva lo stato della sequenza e assegnala a una variabile.
>> x=rand("state");
Imposta lo stato della funzione rand tramite la variabile x
>> rand("state",x);
Da questo momento in poi Octave usa lo stato della sequenza salvata nella variabile x.
Ad esempio genera un vettore composto da numeri casuali
>> randi(3,3)
ans =
1 3 1
1 2 3
1 2 3
Ora imposta nuovamente la generazione dei numeri casuali alla variabile x.
>> rand("state",x);
Poi genera un'altra matrice casuale
>> randi(3,3)
ans =
1 3 1
1 2 3
1 2 3
Il risultato è la stessa matrice casuale ottenuta precedentemente.
In questo modo puoi usare la stessa sequenza di numeri casuali quando avvi un programma.
Nota. Quando avvii una nuova sessione devi ripetere gli stessi comandi. In alternativa, per avere la stessa sequenza di numeri casuali in ogni sessione devi salvare lo stato in un file.
Per smettere di usare la stessa sequenza di numeri casuali digita
>> rand("state","reset")
Se questa lezione di Nigiara su Octave è utile, continua a seguirci.