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 於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 屬性授權中所述的詞彙使用。