Tracce
/
Go
Go
/
Programma
/
Casualità
Ca

Casualità in Go

2 esercizi

Informazioni su Casualità

Il pacchetto math/rand fornisce supporto per generare numeri pseudo-casuali.

Ecco come generare un numero intero casuale compreso tra 0 e 99:

import "math/rand"

n := rand.Intn(100) // n is a random int, 0 <= n < 100

La funzione rand.Float64 restituisce un numero in virgola mobile casuale compreso tra 0.0 e 1.0:

f := rand.Float64() // f is a random float64, 0.0 <= f < 1.0

C'è anche il supporto per mescolare uno slice (o altre strutture dati):

x := []string{"a", "b", "c", "d", "e"}
// shuffling the slice put its elements into a random order
rand.Shuffle(len(x), func(i, j int) {
	x[i], x[j] = x[j], x[i]
})

Semi

Le sequenze di numeri generate dal pacchetto math/rand non sono davvero casuali. Dato un valore di «seme» specifico, i risultati sono del tutto deterministici.

In Go 1.20 e versioni successive il seme viene scelto automaticamente a caso, quindi a ogni esecuzione del programma vedrai una sequenza di numeri casuali diversa.

Nelle versioni precedenti di Go, il seme era 1 per impostazione predefinita. Quindi, per ottenere sequenze diverse nelle varie esecuzioni del programma, dovevi impostare manualmente il seme del generatore di numeri casuali, ad esempio con l'ora corrente, prima di ottenere dei numeri casuali.

rand.Seed(time.Now().UnixNano())
Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Casualità

La pratica è bloccata

Sblocca 2 altri esercizi per esercitarti su Casualità