Funzioni per generare / manipolare numeri pseudocasuali
Nome funzione | Tipo | Funzionalità |
---|---|---|
random.choice(z) | … | Genera un elemento casuale scegliendolo tra quelli appartenenti alla struttura dati z |
random.choices(z, k=n) | list | Genera n elementi casuali (con reinserimento) scegliendoli tra quelli appartenenti alla struttura dati z |
random.randint(a, b) | int | Genera un numero intero nell’intervallo [a, b] |
random.random() | float | Genera un numero reale nell’intervallo [0, 1) |
random.randrange(stop) | int | Come choice(range(top)) |
random.randrange(start, stop) | int | Come choice(range(start, stop)) |
random.randrange(start, stop, step) | int | Come choice(range(start, stop, step)) |
random.sample(z, n) | list | Genera una lista costruita con n elementi casuali della struttura dati z. Senza reinserimento. n ≤ len(z) |
random.seed() | Inizializza il generatore tramite il valore della funzione time() | |
random.seed(x) | Inizializza il generatore tramite il valore di x | |
random.shuffle(z) | Mescola, sul posto, gli elementi della struttura dati z | |
random.uniform(x1, x2) | float | Genera numeri reali nell’intervallo [x1, x2) |
Ancora
random.choices(...)
, con pesirandom.getrandbits(k)
, genera un numero intero con k bit- …
Il modulo random fornisce anche generatori di numeri pseudo-casuali per le distribuzioni non uniformi
- betavariate()
- expovariate()
- gammavariate()
- gauss()
- triangular(), …
Prima di utilizzare le funzioni ricorda di usare
1 |
import random |
Senza argomenti
1 2 3 |
random.seed() # Facoltativo: inizializza il generatore x=random.random() # x in [0.0, 1.0) x=random.random() # x in [0.0, 1.0) (un altro...) |
Un numero / una stringa
1 2 3 4 5 6 7 8 9 10 11 12 13 |
a=10 random.seed(a) x=random.random() # 0.5714025946899135 x=random.random() # 0.4288890546751146 random.seed(a) x=random.random() # 0.5714025946899135 (già visto...) s="Peppino" random.seed(s) x=random.random() # 0.0013421729058085141 x=random.random() # 0.7417433233964847 random.seed(s) x=random.random() # 0.0013421729058085141 (già visto...) |
Due numeri
1 2 3 4 5 6 7 8 9 10 11 |
a=1 b=6 x=random.randint(a,b) # x intero in [a, b] x=random.randint(a,b) # x intero in [a, b] (un altro...) x=int((b-a+1)*random.random()+a) # lo stesso risultato di random.randint(a,b) x1=1.0 x2=1.5 x=random.uniform(x1,x2) # x in [x1,x2) x=random.uniform(x1,x2) # x in [x1,x2) (un altro...) x=(x2-x1)*random.random()+x1 # lo stesso risultato di random.uniform(x1,x2) |
Una lista
1 2 3 4 5 6 7 8 9 |
lista=[1,8,0,1,1,9,2,8] random.shuffle(lista) # mescolata x=random.choice(lista)) # un elemento della lista (stringa, tupla, ...) x=random.choice(lista)) # un altro z=random.sample(lista, 2)) # una lista con 2/3/... elementi della lista (stringa, tupla, ...) z=random.sample(lista, 2)) # un'altra lista |