Tracks
/
Go
Go
/
Lehrplan
/
Zufälligkeit
Zu

Zufälligkeit in Go

2 Übungen

Über Zufälligkeit

Das Paket math/rand unterstützt dich beim Generieren von Pseudozufallszahlen.

So generierst du eine zufällige Ganzzahl zwischen 0 und 99:

import "math/rand"

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

Die Funktion rand.Float64 gibt eine zufällige Gleitkommazahl zwischen 0.0 und 1.0 zurück:

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

Es gibt auch Unterstützung dafür, ein Slice (oder andere Datenstrukturen) zu mischen:

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

Seeds

Die Zahlenfolgen, die das Paket math/rand generiert, sind nicht wirklich zufällig. Gibst du einen bestimmten Seed an, sind die Ergebnisse vollständig deterministisch.

In Go 1.20+ wird der Seed automatisch zufällig gewählt, sodass du bei jedem Programmlauf eine andere Folge von Zufallszahlen siehst.

In früheren Versionen von Go war der Seed standardmäßig 1. Um für verschiedene Programmläufe unterschiedliche Folgen zu bekommen, musstest du den Zufallszahlengenerator vor dem Abrufen von Zufallszahlen manuell mit einem Seed versehen, z. B. mit der aktuellen Uhrzeit.

rand.Seed(time.Now().UnixNano())
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Zufälligkeit

Das Üben ist gesperrt

Schalte 2 weitere Übungen frei, um Zufälligkeit zu üben