在java中设置随机BigInteger的长度

在java中设置随机BigInteger的长度,java,biginteger,Java,Biginteger,假设我从用户那里得到一个输入8,我应该能够生成一个长度为8位的随机BigInteger。假设我输入20,我应该能够生成一个长度为20位的随机BigInteger。我怎样才能做到这一点 我从一个示例中引用了以下代码 int SIZE = 512; p = new BigInteger(SIZE, 15, new Random()); q = new BigInteger(SIZE, 15, new Random()); 谁能告诉我这些论点是什么意思?或者你能推荐一种更简单的方法来实现这一点吗?一

假设我从用户那里得到一个输入8,我应该能够生成一个长度为8位的随机BigInteger。假设我输入20,我应该能够生成一个长度为20位的随机BigInteger。我怎样才能做到这一点

我从一个示例中引用了以下代码

int SIZE = 512;
p = new BigInteger(SIZE, 15, new Random());
q = new BigInteger(SIZE, 15, new Random());
谁能告诉我这些论点是什么意思?或者你能推荐一种更简单的方法来实现这一点吗?

一个整数解决方案

public static int randInt(int min, int max) {

    // Usually this can be a field rather than a method variable
    Random rand = new Random();

    // nextInt is normally exclusive of the top value,
    // so add 1 to make it inclusive
    int randomNum = rand.nextInt((max - min) + 1) + min;

    return randomNum;
}
所以如果你需要8位随机数

使用8位数字范围调用此函数,即最小8位数字和最高8位数字

e、 g

兰丁100000009999999

来源:某个范围的随机数代码取自此处

你也可以看下一段。这些是均匀生成的随机数

大整数位长度, 不确定, 随机rnd

构造一个随机生成的正BigInteger,它可能是素数,具有指定的位长度。 建议优先使用probablePrime方法,而不是此构造函数,除非迫切需要指定确定性

参数:

bitLength—返回的BigInteger的位长度

确定性——呼叫方愿意容忍的不确定性度量。新的BigInteger表示素数的概率将超过1-1/2确定性。此构造函数的执行时间与此参数的值成比例

rnd—用于选择要测试素性的候选项的随机位源


直接从Oracles网站上获取,希望这就是您想要的。

这不会产生统一的分布。阅读JavaDoc: