用java生成非常大的随机数

用java生成非常大的随机数,java,random,biginteger,largenumber,Java,Random,Biginteger,Largenumber,如何在java中生成非常大的随机数?我说的大概是10000个数字?我知道我们必须使用BigInteger,但我们如何才能做到这一点?这样做最有效的方法是什么?请提供一个小例子。谢谢。结合使用 一种方法是去下载一个二进制随机文件。这些文件是由大气噪声生成的,所以非常随机。我在我的象棋引擎中用它来做Zobrist键 或者你也可以去 BigInteger b = new BigInteger(256, new Random()); 这会给你你想要的。在本例中,一个由256位组成的大整数。您只需键入:

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

结合使用

一种方法是去下载一个二进制随机文件。这些文件是由大气噪声生成的,所以非常随机。我在我的象棋引擎中用它来做Zobrist键

或者你也可以去

BigInteger b = new BigInteger(256, new Random());
这会给你你想要的。在本例中,一个由256位组成的大整数。

您只需键入:

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

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

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


另外,您不需要导入类。

+1。文档中有四个构造器,我没有看到:D。你能解释一下这是如何工作的吗?我或多或少对字节部分感到困惑。。感谢您分配一个字节数组,nextBytes用随机值填充它,然后biginger被初始化为该字节序列定义的二进制数。但我认为Jaco的解决方案更简洁。这个问题要求有10000位数字。这个答案甚至不接近。1000位数字不适合int类型的变量。将随机值乘以某个常数就不是随机的。虽然这个答案可能适用于小数字,但问题很明显,它适用于非常大(比整数大得多)的数字。所以这不是一个有效的答案。
BigInteger b = new BigInteger(256, new Random());