如何使用 BigInteger 类在 Java 中生成随机的 n 位整数?

2022-09-03 12:36:59

我不确定如何使用BigInteger类在Java中生成随机的n位整数。


答案 1
private static Random rnd = new Random();

public static String getRandomNumber(int digCount) {
    StringBuilder sb = new StringBuilder(digCount);
    for(int i=0; i < digCount; i++)
        sb.append((char)('0' + rnd.nextInt(10)));
    return sb.toString();
}

然后你可以使用它:

new BigInteger(getRandomNumber(10000))

答案 2

根据文档,有一个构造函数可以在java 6中做你想做的事情:BigInteger(int,java.util.Random)

为此,您只需要添加随机选择的第5000位数字 - 即使用 rng 构造函数到 4999 位,通过单独的随机过程将最后一个 in 相加。实际上,由于您只想对大值的性能进行采样,因此您可以生成位,并在大端上附加一个位,而不是从属十进制表示法。