次の方法で共有


Random.NextInt メソッド

定義

オーバーロード

NextInt()

この乱数ジェネレーターのシーケンスから、次の擬似乱数の均一分散 int 値を返します。

NextInt(Int32)

この乱数ジェネレーターのシーケンスから描画される、0 (包括) から指定した値 (排他的) の間で一様に分散 int された擬似乱数値を返します。

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 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象