在java中生成短随机数?

2022-09-03 08:33:14

我想生成一个随机数的短类型,就像有一个名为Random.nextInt(134116)的整数类型函数一样。我怎样才能实现它?


答案 1

没有方法,所以你可以使用Random.nextShort()

short s = (short) Random.nextInt(Short.MAX_VALUE + 1);

+1 是因为该方法返回一个数字,该数字最多为指定的数字(独占)。请参阅此处

这将生成从 0 到 Short.MAX_VALUE(OP 未请求负数)的数字


答案 2

可以产生所有可能的短值的最有效解决方案是做任何一个。

short s = (short) random.nextInt(1 << 16); // any short
short s = (short) random.nextInt(1 << 15); // any non-negative short

甚至更快

class MyRandom extends Random {
    public short nextShort() {
        return (short) next(16); // give me just 16 bits.
    }
    public short nextNonNegativeShort() {
        return (short) next(15); // give me just 15 bits.
    }
}

short s = myRandom.nextShort();

推荐