在Java中如何生成非常大的随机数?我说的是像10000位数字这样的东西。我知道我们必须使用BigInteger,但我们该如何做到这一点?最有效的方法是什么?请提供一个小例子。谢谢。
在Java中如何生成非常大的随机数?我说的是像10000位数字这样的东西。我知道我们必须使用BigInteger,但我们该如何做到这一点?最有效的方法是什么?请提供一个小例子。谢谢。
有一种方式是访问Random.org,并下载一个二进制随机文件。这些文件是从大气噪声中生成的,因此非常随机。我在我的棋盘引擎中使用它来进行Zobrist密钥计算。
另外,您还可以:
BigInteger b = new BigInteger(256, new Random());
这将会给你想要的东西。在这个例子中,是由256位组成的BigInteger。
将Random.nextBytes(byte[])
与BigInteger(byte[])
结合使用。
import java.util.*;
import java.math.*;
class Test{
public static void main(String[]_){
int n = 16;
Random r = new Random();
byte[] b = new byte[n];
r.nextBytes(b);
BigInteger i = new BigInteger(b);
System.out.println(i);
}
}
int number = (int)(Math.random() * 100);
如果你改变乘数,还可以生成更大的数字:
int number = (int)(Math.random() * 1000);
附注:你不需要导入任何类。