Parcours
/
Go
Go
/
Programme
/
Aléatoire
Al

Aléatoire en Go

2 exercices

À propos de Aléatoire

Le package math/rand permet de générer des nombres pseudo-aléatoires.

Voici comment générer un entier aléatoire entre 0 et 99 :

import "math/rand"

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

La fonction rand.Float64 renvoie un nombre à virgule flottante aléatoire entre 0.0 et 1.0 :

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

Il est aussi possible de mélanger un slice (ou d'autres structures de données) :

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]
})

Les graines

Les séquences de nombres générées par le package math/rand ne sont pas vraiment aléatoires. Pour une valeur de « graine » donnée, les résultats sont entièrement déterministes.

À partir de Go 1.20, la graine est choisie automatiquement au hasard, si bien que tu verras une séquence de nombres aléatoires différente à chaque exécution de ton programme.

Dans les versions antérieures de Go, la graine valait 1 par défaut. Ainsi, pour obtenir des séquences différentes d'une exécution du programme à l'autre, il fallait initialiser manuellement le générateur de nombres aléatoires, par exemple avec l'heure courante, avant de récupérer le moindre nombre aléatoire.

rand.Seed(time.Now().UnixNano())
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Aléatoire

L'entraînement est verrouillé

Déverrouille 2 exercices de plus pour t'entraîner sur Aléatoire