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

mak*_*178 15 java biginteger digits

我不确定如何生成在Java中使用BigInteger类一个随机N位整数.

Eya*_*der 14

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();
}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用它:

new BigInteger(getRandomNumber(10000))
Run Code Online (Sandbox Code Playgroud)


Car*_*arl 5

根据文档,有一个构造函数可以在java 6中执行您想要的操作:BigInteger(int,java.util.Random)

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