どのようにして非常に大きな乱数をJavaで生成できますか?私は10000桁のようなものを話していますか?私はBigIntegerを使用しなければならないことは知っていますが、どうやってこれを行うことができますか?このようなことをする最も効果的な方法は何ですか?小さな例を挙げてください。ありがとうございました。非常に大きな乱数を生成するJava
答えて
もう1つの方法は、Random.orgに行き、バイナリランダムファイルの1つをダウンロードすることです。ファイルは大気騒音から生成されるので、非常にランダムです。チェスエンジンのZobristキーに使用しました。
代わりに、あなたは何をしたいあなたを与えるだろう
BigInteger b = new BigInteger(256, new Random());
を行くことができます。この例では、256ビットで構成されるBigIntegerです。
と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);
}
}
+1:おそらくmod()を使用して特定の桁数を取得します。 –
これはどのように動作するのですか?ありがとうございました –
バイトの配列を割り当てると、nextBytesはランダムな値で埋められ、BigIntegerはそのバイト列で定義されたバイナリ番号として初期化されます。しかし、私はJacoの解決策がより簡潔だと思います。 – Vlad
+1。ドキュメンテーションには4つのコンストラクタがありましたが、私はそれを見ませんでした:D。 – Vlad
私たちの最高のことが起こります! –