Random.NextDouble メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この乱数ジェネレーターのシーケンスとの間0.0
1.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.0
1.0
で一様に分散されたdouble
次の擬似乱数値
- 属性
注釈
この乱数ジェネレーターのシーケンスとの間0.0
1.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()
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。