11

Javaで非常に大きな乱数を生成するにはどうすればよいですか?私は10000桁のようなものを話しているのですか?BigIntegerを使用する必要があることはわかっていますが、どうすればこれを実行できますか?このようなことをする最も効率的な方法は何ですか?小さな例を教えてください。ありがとうございました。

4

3 に答える 3

21

1つの方法は、Random.orgにアクセスして、バイナリランダムファイルの1つをダウンロードすることです。ファイルは大気ノイズから生成されるため、非常にランダムです。チェスエンジンのゾブリストキーに使用しました。

あるいは、あなたは行くことができます

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 に答える