Successivo: , Precedente: , Su: Funzioni di tipo generale   [Contenuti][Indice]


10.2.4 Il generatore di numeri casuali Cliff

Il generatore di numeri casuali Cliff è un generatore di numeri casuali molto semplice che “passa il test della sfera del rumore per la casualità non mostrando di avere alcuna struttura.” È programmato in modo molto semplice, in meno di 10 righe di codice awk:

# cliff_rand.awk --- generare numeri casuali con algoritmo di Cliff

BEGIN { _cliff_seme = 0.1 }

function cliff_rand()
{
    _cliff_seme = (100 * log(_cliff_seme)) % 1
    if (_cliff_seme < 0)
        _cliff_seme = - _cliff_seme
    return _cliff_seme
}

Questo algoritmo richiede un “seme” iniziale di 0,1. Ogni nuovo valore usa il seme corrente come input per il calcolo. Se la funzione predefinita rand() (vedi la sezione Funzioni numeriche) non è abbastanza casuale, si può tentare di usare al suo posto questa funzione.