Random.NextDouble メソッド

定義

この乱数ジェネレーターのシーケンスとの間0.01.0で一様に分散されたdouble次の擬似乱数値を返します。

[Android.Runtime.Register("nextDouble", "()D", "GetNextDoubleHandler")]
public virtual double NextDouble ();
[<Android.Runtime.Register("nextDouble", "()D", "GetNextDoubleHandler")>]
abstract member NextDouble : unit -> double
override this.NextDouble : unit -> double

戻り値

この乱数ジェネレーターのシーケンスとの間0.01.0で一様に分散されたdouble次の擬似乱数値

属性

注釈

この乱数ジェネレーターのシーケンスとの間0.01.0で一様に分散されたdouble次の擬似乱数値を返します。

nextDouble一般的なコントラクトは、範囲 0.0d (包括的1.0d) から (排他的) まで一様に選択された 1 つのdouble値が擬似ランダムに生成され、返されるということです。

メソッド nextDouble は、次のようにクラス Random によって実装されます。

{@code
            public double nextDouble() {
              return (((long)next(26) << 27) + next(27))
                / (double)(1L << 53);
            }}

前述の説明では、ヘッジ "概算" が使用されます。これは、 メソッドが独立して選択されたビットのほぼ公平なソースに過ぎません next 。 ランダムに選択されたビットの完全なソースである場合、表示されるアルゴリズムは、完全な均一性を持つ指定された範囲から値を選択 double します。

[Java の初期バージョンでは、結果は次のように正しく計算されませんでした。

{@code
              return (((long)next(27) << 27) + next(27))
                / (double)(1L << 54);}

これは、良くない場合は同等のように見えるかもしれませんが、実際には浮動小数点数の丸めで偏りがあるため、大きな不一意性が発生しました。これは、仮数の下位ビットが 1 よりも 0 になる可能性が 3 倍でした。 この不一意性は、実際にはあまり重要ではありませんが、完璧を目指して努力しています。

の Java ドキュメント java.util.Random.nextDouble()

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象