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 Funzioni numeriche) non è abbastanza casuale, si può tentare di usare al suo posto questa funzione.