生成n位或更多的随机数

时间:2016-07-05 14:50:31

标签: java random biginteger

我看到很多例子来生成特定范围[min-max]的随机数,但我需要生成n位或更多位的随机数的java代码,所以在这种情况下min= 10000000和{{1} }。

注意 - 我正在使用no max

2 个答案:

答案 0 :(得分:2)

您可以使用构造函数BigInteger(int numBits, Random rnd)生成带有N位的正随机数。

如果您想要最小值,可以将其作为生成数字的偏移量添加:

Random random = ThreadLocalRandom.current();
BigInteger base = BigInteger.valueOf(10000000); // min
int randomBits = 50; // set as many bits as you fancy

BigInteger rnd = base.add(new BigInteger(randomBits, random));

答案 1 :(得分:1)

BigInteger在其构造函数之一中接受十进制字符串。生成单个数字并将它们附加到String。如果String中有足够的数字,请从字符串中创建BigInteger。您可能希望将第一个数字限制在[1 .. 9]中以避免前导零,具体取决于您的确切要求。