Random.NextInt メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
NextInt() |
この乱数ジェネレーターのシーケンスから、次の擬似乱数の均一分散 |
NextInt(Int32) |
この乱数ジェネレーターのシーケンスから描画される、0 (包括) から指定した値 (排他的) の間で一様に分散 |
NextInt()
この乱数ジェネレーターのシーケンスから、次の擬似乱数の均一分散 int
値を返します。
[Android.Runtime.Register("nextInt", "()I", "GetNextIntHandler")]
public virtual int NextInt ();
[<Android.Runtime.Register("nextInt", "()I", "GetNextIntHandler")>]
abstract member NextInt : unit -> int
override this.NextInt : unit -> int
戻り値
次の擬似乱数ジェネレーターのシーケンスからの均一に分散された int
値
- 属性
注釈
この乱数ジェネレーターのシーケンスから、次の擬似乱数の均一分散 int
値を返します。 一般的なコントラクト nextInt
は、1 つの int
値が擬似ランダムに生成され、返されるということです。 可能な int
2<sup>32</sup> 値はすべて、(ほぼ) 等しい確率で生成されます。
このメソッド nextInt
は、次のようにクラス Random
によって実装されます。
{@code
public int nextInt() {
return next(32);
}}
の Java ドキュメントjava.util.Random.nextInt()
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
適用対象
NextInt(Int32)
この乱数ジェネレーターのシーケンスから描画される、0 (包括) から指定した値 (排他的) の間で一様に分散 int
された擬似乱数値を返します。
[Android.Runtime.Register("nextInt", "(I)I", "GetNextInt_IHandler")]
public virtual int NextInt (int bound);
[<Android.Runtime.Register("nextInt", "(I)I", "GetNextInt_IHandler")>]
abstract member NextInt : int -> int
override this.NextInt : int -> int
パラメーター
- bound
- Int32
上限 (排他)。 正の値を指定する必要があります。
戻り値
次の擬似乱数は、この乱数ジェネレーターのシーケンスから 0 (包括) と bound
(排他的) の間で均一に分散されたint
値です。
- 属性
注釈
この乱数ジェネレーターのシーケンスから描画される、0 (包括) から指定した値 (排他的) の間で一様に分散 int
された擬似乱数値を返します。 一般的なコントラクト nextInt
は、指定された範囲内の 1 つの int
値が擬似ランダムに生成され、返されるということです。 可能int
なすべてのbound
値は、(ほぼ) 等しい確率で生成されます。 このメソッド nextInt(int bound)
は、次のようにクラス Random
によって実装されます。
{@code
public int nextInt(int bound) {
if (bound <= 0)
throw new IllegalArgumentException("bound must be positive");
if ((bound & -bound) == bound) // i.e., bound is a power of 2
return (int)((bound * (long)next(31)) >> 31);
int bits, val;
do {
bits = next(31);
val = bits % bound;
} while (bits - val + (bound-1) < 0);
return val;
}}
前述の説明では、次の方法が独立して選択されたビットの偏りのないソースに過ぎないためにのみ、ヘッジ "概念" が使用されます。 ランダムに選択されたビットの完全なソースである場合、示されているアルゴリズムは、完全な均一性を持つ指定された範囲から値を選択 int
します。
アルゴリズムは少し複雑です。 分布が不均一になる値を拒否します (2^31 が n で割り切れないため)。 値が拒否される確率は n に依存します。 最悪のケースは n=2^30+1 で、拒否の確率は 1/2 で、ループが終了するまでの反復回数は 2 です。
このアルゴリズムは、n が 2 の累乗である場合を特別に扱います。基になる擬似乱数ジェネレーターから正しい高次ビット数を返します。 特別な処理がない場合は、正しい数の 下位 ビットが返されます。 このクラスによって実装されるような線形結合擬似乱数ジェネレーターは、下位ビットの値のシーケンスに短い期間を持つことが知られています。 したがって、この特殊なケースでは、n が 2 の小さな累乗である場合に、このメソッドの連続する呼び出しによって返される値のシーケンスの長さが大幅に長くなります。
1.2 で追加されました。
の Java ドキュメントjava.util.Random.nextInt(int)
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。