11

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

4

3 回答 3

21

好吧,一种方法是访问Random.org并下载一个二进制随机文件。这些文件是由大气噪声生成的,因此非常随机。我将它用于我的国际象棋引擎中的 Zobrist 键。

或者你可以去

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

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

于 2011-11-23T15:31:18.803 回答
9

结合. 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);
    }
}
于 2011-11-23T15:27:47.120 回答
-2

您只需键入:

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

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

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

PS您不需要导入类。

于 2019-02-07T16:12:27.333 回答