java生成30到32位数之间的随机数

时间:2012-12-17 19:21:45

标签: java

阅读其他帖子我认为我必须使用BigInteger在30到32位数之间生成20,000个随机数。

public BigInteger(int numBits, Random rnd)

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

由于

1 个答案:

答案 0 :(得分: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);
}