EMZETT.
Login

Zufall und Runden in vielen Programmiersprachen

Kurz: Fast jede Sprache hat eine Funktion für Zufallszahlen und eine zum Abrunden. Die Namen und das Verhalten unterscheiden sich im Detail.

Genauer: Die Tabelle zeigt, wie man in gängigen Sprachen eine Zufallszahl von 1 bis 6 und das Abrunden schreibt. Sicherheitsrelevante Zufallswerte brauchen immer den kryptografischen Generator der jeweiligen Sprache.

Im Detail

SpracheWürfel 1–6Abrunden
JavaScriptMath.floor(Math.random()*6)+1Math.floor(x)
Javanew Random().nextInt(6)+1 oder ThreadLocalRandom.current().nextInt(1,7)Math.floor(x)
Pythonrandom.randint(1,6)math.floor(x)
Crand() % 6 + 1 (vorher srand(time(0)))floor(x) aus math.h
C++std::uniform_int_distribution<int>(1,6) mit mt19937std::floor(x)
C#Random.Shared.Next(1,7)Math.Floor(x)
Gorand.IntN(6)+1 (math/rand/v2)math.Floor(x)
Rustrng.gen_range(1..=6) (Crate rand)x.floor()
PHPrandom_int(1,6)floor($x)
Rubyrand(1..6)x.floor
Kotlin(1..6).random()floor(x)
SwiftInt.random(in: 1...6)x.rounded(.down)
SQLFLOOR(RAND()*6)+1 (MySQL)FLOOR(x)
Bash$((RANDOM % 6 + 1))ganzzahlige Division
  • Sicher: Python secrets, Java SecureRandom, JS crypto.getRandomValues, C# RandomNumberGenerator, PHP random_int, Go crypto/rand.
  • Modulo-Falle: rand() % n ist leicht verzerrt, wenn der Zahlenraum nicht durch n teilbar ist.
  • Seed: Gleicher Startwert (Seed) ergibt dieselbe Zahlenfolge, nützlich für Tests.

Siehe auch: Math.random und Math.floor, Zufallszahlen: Pseudozufall und echter Zufall