共用方式為


Random.NextInt 方法

定義

多載

NextInt()

傳回這個隨機數產生器序列中的下一個虛擬隨機、統一分佈 int 值。

NextInt(Int32)

傳回從這個隨機數產生器序列中繪製的虛擬隨機值,統一分佈 int 於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 是,一個 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 於0(內含)與指定值(獨佔)。

[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 於0(內含)與指定值(獨佔)。 的一般合約 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 是兩個小乘冪,這個特殊案例會大幅增加連續呼叫這個方法所傳回之值序列的長度。

已在1.2中新增。

java.util.Random.nextInt(int)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於