Il modulo random¶
Spesso usiamo numeri casuali nei nostri programmi. Per esempio:
- Per giocare a un gioco in cui il computer deve tirare dei dadi o lanciare una moneta,
- Per mescolare un mazzo di carte,
- Per simulare la pioggia in una simulazione al computer,
- Per criptare la sessione di home banking su Internet.
Python fornisce un modulo random
che aiuta compiti come questo.
Se lanciamo il programma diverse volte, notiamo che i valori cambiano ogni volta.
- La funzione
randrange
genera un intero tra il suo argomento più basso e quello più alto esattamente comerange
- Tutti i valori hanno la stessa probabilità di uscire (ovvero i risultati sono uniformemente distribuiti).
- La funzione
random()
ritorna un numero con la virgola nell’intervallo [0.0, 1.0) - Spesso scaliamo il risultato dopo aver chiamato questo metodo per adattare il valore all’intervallo desiderato dalla nostra applicazione.
- Nel caso mostrato qui, abbiamo convertito il risultato in un numero nell’intervallo [0.0, 5.0).
E’ importante notare che i numeri casuali sono generati usando algoritmi deterministici deterministic — ripetibili e predicibili. Per questo motivo, questi generatori sono chiamati pseudo-random generators. Questi vengono avviati con un certo valore seed (seme) e ogni volta che chiediamo un nuovo numero ne otterremo uno basato sul seed corrente. Il seed è un attributo del generatore. Se eseguiamo due volte con lo stesso seed, la sequenza di numeri che verrà generata a partire da quel seed sarà sempre la stessa. Ma questi numeri sono distribuiti uniformemente.