生成非常大的随机数java

时间:2011-11-23 15:25:31

标签: java random biginteger largenumber

我们如何在java中生成非常大的随机数?我说的是10000个数字?我知道我们必须使用BigInteger,但我们怎么做呢?做这样的事最有效的方法是什么?请提供一个小例子。谢谢。

3 个答案:

答案 0 :(得分:18)

好吧,一种方法是转到Random.org并下载一个二进制随机文件。文件是从大气噪声中生成的,所以它非常随机。我在国际象棋引擎中用它来制作Zobrist键。

或者你可以去

BigInteger b = new BigInteger(256, new Random());

它会给你你想要的东西。在这个例子中,BigInteger由256位组成。

答案 1 :(得分:8)

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);
    }
}

答案 2 :(得分:-1)

您可以输入:

int number = (int)(Math.random() * 100);

此外,如果更改乘数,则可以生成更大的数字:

int number = (int)(Math.random() * 1000);

P.S。您不需要导入类。