Funzioni per generare / manipolare numeri pseudocasuali
Prima di utilizzare le funzioni ricordati di importare il modulo
import random
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(), …
Senza argomenti
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
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
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
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