为什么Random.nextInt()%16倾斜而Random.nextInt(16)工作得很好?

时间:2016-08-09 23:06:14

标签: java random casting bukkit mod

我正在编写一个将雪球视为彩弹的Bukkit插件。当我不小心使用时:

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

而不是

(byte) (random.nextInt(16))

我注意到较低的数字似乎比数字更高。为什么会这样?

Ex:之前:

00010
01200
06001
30010
00502

Ex:After:

74108
73447
98956
17386
26574

1 个答案:

答案 0 :(得分:3)

random.nextInt()也可以返回负值,我的程序将负数视为零,加倍使零发生的几率增加三倍。