3

他の投稿を読んで、BigInteger を使用して 30 から 32 桁の範囲の 20,000 の乱数を生成する必要があると考えました。

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 に答える