Random.NextInt 方法

定义

重载

NextInt()

返回此随机数生成器序列中的下一个伪随机分布 int 值。

NextInt(Int32)

返回从此随机数生成器序列中绘制的伪随机值(非独占)与指定值(独占)之间的一个伪随机分布 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 是,一个 int 值是伪随机生成并返回的。 所有 2<个 sup>32</sup> 可能 int 的值都以 (近似) 相等概率生成。

该方法 nextInt 由类 Random 实现,如下所示:

{@code
            public int nextInt() {
              return next(32);
            }}

适用于 . 的 java.util.Random.nextInt()Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于

NextInt(Int32)

返回从此随机数生成器序列中绘制的伪随机值(非独占)与指定值(独占)之间的一个伪随机分布 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

上限(独占)。 必须为正。

返回

下一个伪随机数,此随机数生成器序列中的零(非独占)和bound(独占)之间的统一分布int

属性

注解

返回从此随机数生成器序列中绘制的伪随机值(非独占)与指定值(独占)之间的一个伪随机分布 int 值。 一般协定 nextInt 是指定范围内的一个 int 值是伪随机生成并返回的。 所有 bound 可能 int 的值都以 (近似) 相等概率生成。 该方法 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 是两个特别幂的情况:它从基础伪随机数生成器中返回正确的高阶位数。 如果没有特殊处理,将返回正确的低序位数。 众所周知,此类实现的线性同一伪随机数生成器(如此类实现的一个生成器)在低序位的值序列中具有较短的周期。 因此,如果 n 是小数 2,则此特殊情况极大地增加了连续调用此方法返回的值序列的长度。

已在 1.2 中添加。

适用于 . 的 java.util.Random.nextInt(int)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于