我们怎样才能生成Java非常大的随机数?我说像10000级的数字?我知道我们必须使用的BigInteger但如何才能做到这一点?什么是做这样的事情的最efficent方法是什么?请提供一个小例子。谢谢。
当然,一种办法是去Random.org和下载二进制文件随机的一个。该文件是从大气中产生的噪音,所以这是很随意的。我用它在我的国际象棋引擎佐布里斯特键。
或者你可以去
BigInteger b = new BigInteger(256, new Random());
这会给你想要的东西。在这个例子中,一个BigInteger包括256位。
结合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);
附:你并不需要导入的类。