我看到很多例子来生成特定范围[min-max]的随机数,但我需要生成n位或更多位的随机数的java代码,所以在这种情况下min= 10000000
和{{1} }。
注意 - 我正在使用no max
答案 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]中以避免前导零,具体取决于您的确切要求。