假设我从用户那里取输入“8”,我应该能够生成长度为8位的随机BigInteger。假设我输入“20”,我应该能够生成一个长度为20位的随机BigInteger。我怎样才能做到这一点?
我从示例中提到了以下代码。
int SIZE = 512;
p = new BigInteger(SIZE, 15, new Random());
q = new BigInteger(SIZE, 15, new Random());
谁能告诉我这些论点是什么意思?或者你能建议一个更简单的方法来实现这个目标吗?
答案 0 :(得分:0)
BigInteger(int bitLength, 确定的, 随机rnd)
构造一个随机生成的正BigInteger,它可能是素数,具有指定的bitLength。 建议首先使用probablePrime方法优先于此构造函数,除非迫切需要指定确定性。
参数:
bitLength - 返回的BigInteger的bitLength。
确定性 - 衡量呼叫者愿意容忍的不确定性的指标。新BigInteger表示素数的概率将超过(1 - 1/2)。此构造函数的执行时间与此参数的值成比例。rnd - 用于选择要测试素数的候选者的随机位源。
直接从Oracles网站上获取,希望这正是您所寻找的。 p>
答案 1 :(得分:-1)
整数解
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位i.e
最小8位#和最高8位数。
e.g
randInt(10000000, 99999999)
来源:范围随机数的代码取自此处
How do I generate random integers within a specific range in Java?
您也可以查看nextLong()
。这些是统一生成的随机数
http://docs.oracle.com/javase/6/docs/api/java/util/Random.html#nextLong()