random
random termine inglese (letteralmente: «casuale») utilizzato per indicare una procedura, una scelta, un’attribuzione di valore non connessa ad alcun procedimento deterministico. Qualsiasi procedimento algoritmico implementato non è mai assolutamente casuale, perché segue una serie di istruzioni deterministiche; queste possono tuttavia essere costruite in modo tale da rendere imprevedibili i loro valori in uscita e, quindi, da simulare con buona attendibilità l’assoluta casualità. Nei linguaggi di programmazione funzionali e procedurali è presente una funzione random per generare una successione di numeri caratterizzata da elementi di imponderabilità e imprevedibilità; la sua sintassi è generalmente: random(espressione). Il suo compito è di simulare una “estrazione a sorte” di valori, intesa quest’ultima come paradigma della casualità. L’espressione numerica su cui essa opera è una costante o una variabile di tipo intero, che definisce l’intervallo di variazione dei numeri teoricamente estratti a sorte, per cui i valori in uscita hanno tutti la stessa probabilità teorica. Per esempio, nel lancio di un dado a sei facce, l’uscita casuale di un numero da 1 a 6 può essere descritta dalla istruzione random(6) + 1 perché random(6) fornisce l’estrazione di un numero compreso tra 0 e 5 con uguale probabilità di 1/6. La generazione di numeri puramente casuali è praticamente impossibile, poiché qualsiasi algoritmo progettato a questo scopo, chiamato anche algoritmo di randomizzazione, per quanto raffinato possa essere, usa comunque funzioni e procedure finite, limitate dalla particolare implementazione dell’→ ambiente di calcolo e dall’→ aritmetica finita della macchina. Per questo la funzione random nei linguaggi di programmazione genera in realtà un → numero pseudocasuale, ottenuto mediante opportune iterazioni a partire da un numero iniziale detto seme e legato a parametri numerici interni all’elaboratore stesso (quali per esempio l’ora o la data). Un’applicazione importante della funzione random consiste nella simulazione di prove ripetute a carattere aleatorio, tipiche dei problemi di probabilità e statistica.