3

阅读其他帖子我发现我将不得不使用 BigInteger 生成 20,000 个介于 30 到 32 位之间的随机数。

public BigInteger(int numBits, Random rnd)

但这不允许数字的最小和最大范围。

谢谢

4

1 回答 1

2

如果你想使用这个功能,你可以这样做

public static BigInteger random(Random rand, BigInteger minValue, BigInteger maxValue) {
    BigInteger range = maxValue.subtract(minValue).add(BigInteger.ONE);
    int bits = range.bitLength();
    BigInteger ret;
    do {
        ret = new BigInteger(bits, rand);
    } while(ret.compareTo(range) >= 0);
    return ret.add(minValue);
}
于 2012-12-17T20:08:51.870 回答