ホームページ  >  記事  >  Java  >  Java の乱数が毎回同じように見えるのはなぜですか?

Java の乱数が毎回同じように見えるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-09 13:41:02910ブラウズ

Why Do My Random Numbers in Java Seem to Be the Same Every Time?

Java でシードを使用する乱数を理解する

Java では、シードを使用して Random インスタンスを初期化し、一連の擬似乱数を生成します。同じシードが提供されると、Random インスタンスは同じ一連の数値を生成します。

なぜ乱数は毎回同じなのですか?

提供されたコード内:

double num = generator.nextDouble() * (0.5);

randomGenerator の呼び出しごとに同じシードを使用しているため、同じシーケンスのランダムが生成されます。

修正方法

シードを使用して異なる乱数シーケンスを生成するには:

  1. 異なるシードを使用する:randomGenerator を呼び出すたびに、異なるシードを Random コンストラクターへの引数として指定します。これにより、それぞれに固有のシードを持つ複数の Random インスタンスが作成されます。
  2. デフォルト シードを使用する: 複数の呼び出しで同じシードを使用したい場合は、外部で単一の Random インスタンスを初期化します。現在の時刻を引数なしのコンストラクターで使用する、randomGenerator メソッド。シード.

例:

private Random generator = new Random(); // outside randomGenerator
double randomGenerator() {
    return generator.nextDouble() * (0.5); // inside randomGenerator
}

擬似乱数生成

擬似乱数ジェネレーター (PRNG) は、ランダムに見えるシーケンスを生成しますが、決定的であり、初期値がシードされます。同じシードが使用される場合、PRNG は同じシーケンスを生成します。

以上がJava の乱数が毎回同じように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。