【发布时间】:2011-11-23 15:25:30
【问题描述】:
我们如何在java中生成非常大的随机数?我说的是10000位数字?我知道我们必须使用 BigInteger 但我们该怎么做呢?做这样的事情最有效的方法是什么?请提供一个小例子。谢谢。
【问题讨论】:
标签: java random biginteger largenumber
我们如何在java中生成非常大的随机数?我说的是10000位数字?我知道我们必须使用 BigInteger 但我们该怎么做呢?做这样的事情最有效的方法是什么?请提供一个小例子。谢谢。
【问题讨论】:
标签: java random biginteger largenumber
嗯,一种方法是转到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);
附:您不需要导入类。
【讨论】: