生成非常大的随机数java

Jee*_*hah 8 java random largenumber biginteger

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

Jac*_*erk 18

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

或者你可以去

BigInteger b = new BigInteger(256, new Random());
Run Code Online (Sandbox Code Playgroud)

这会给你你想要的.在此示例中,BigInteger由256位组成.

  • +1.文档中有四个构造函数,我没有看到它:D. (2认同)

Vla*_*lad 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);
    }
}
Run Code Online (Sandbox Code Playgroud)