/ / Warum wird Random.nextInt ()% 16 verzerrt, während Random.nextInt (16) einwandfrei funktioniert? - Java, zufällig, Casting, Bukkit, Mod

Warum wird Random.nextInt ()% 16 verzerrt, während Random.nextInt (16) einwandfrei funktioniert? - Java, zufällig, Casting, Bukkit, Mod

Ich schreibe ein Bukkit-Plugin, das Schneebälle als Paintballs behandelt. Wenn ich versehentlich verwendet habe:

(byte) (random.nextInt() % 16)

Anstatt von

(byte) (random.nextInt(16))

Mir fiel auf, dass niedrigere Zahlen viel mehr als höhere Zahlen erschienen. Warum passiert das?

Bsp .: vorher:

00010
01200
06001
30010
00502

Bsp: nach:

74108
73447
98956
17386
26574

Antworten:

3 für die Antwort № 1

random.nextInt() kann auch negative Werte zurückgeben, und mein Programm behandelte Negative als Null, Verdoppelung Verdreifachung der Chance, dass eine Null auftritt.