Random.NextInt 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
NextInt() |
返回此随机数生成器序列中的下一个伪随机分布 |
NextInt(Int32) |
返回从此随机数生成器序列中绘制的伪随机值(非独占)与指定值(独占)之间的一个伪随机分布 |
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 属性许可证中所述的术语使用。