IRandomGenerator 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此 RandomGenerator 介面設計用以提供一個通用協定,用於產生隨機或(更常見的)偽隨機數列(或布林值)的物件。
[Android.Runtime.Register("java/util/random/RandomGenerator", "", "Java.Util.RandomGenerators.IRandomGeneratorInvoker", ApiSince=35)]
public interface IRandomGenerator : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/random/RandomGenerator", "", "Java.Util.RandomGenerators.IRandomGeneratorInvoker", ApiSince=35)>]
type IRandomGenerator = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 衍生
- 屬性
- 實作
備註
此 RandomGenerator 介面設計用以提供一個通用協定,用於產生隨機或(更常見的)偽隨機數列(或布林值)的物件。 這樣的序列可以透過反覆呼叫回傳單一偽隨機選擇值的方法,或是呼叫回傳一連串偽隨機選擇值的方法來獲得。
理想情況下,給定一個隱含或顯式指定的值範圍,每個值應獨立且均勻地從該範圍內選擇。 實務上,可能只能接受某種程度的獨立性與一致性。
在 、 intlong和 boolean 值的情況下,若沒有明確指定範圍,則範圍包含該類型的所有可能值。 在 和 double 值的情況下float,首先總是從兩個<sup>w</sup> 值介於 0.0(包含)到 1.0(排他值)的集合中均勻選擇一個值,其中 w 代表Float#PRECISIONfloat值,Double#PRECISIONdouble對值表示,且相鄰值相差 2<個增>減;w</sup>(注意此集合是所有介於 0.0(包含)與 1.0(排他)之間可表示浮點數集合的子集);若指定了明確範圍,則該數字會經過計算縮放與平移,使其看起來大致均勻地從該顯式範圍中選取。
每個回傳一個串流的方法都會產生一組數值流,每個值的選擇方式與回傳單一偽隨機選擇值的方法相同。 例如,若 r 實 RandomGenerator作 ,則方法呼叫 r.ints(100) 回傳 100 int 個值的串流。 這些值不一定是被 r.nextInt() 呼叫 100 次時回傳的完全相同值;唯一可以確定的是,串流中的每個值都是從相同範圍內以類似的偽隨機方式選擇的。
每個使用偽隨機演算法實作介面 RandomGenerator 的物件,都假設包含有限的狀態。 使用此類物件產生偽隨機選擇值,會透過計算一個新的狀態作為當前狀態的函數,改變其狀態,且不參考除當前狀態以外的任何資訊。 此類物體可能狀態的數量稱為 其週期。 (某些介面實作 RandomGenerator 可能是真正的隨機而非偽隨機,例如依賴實體物件的統計行為來推導所選值。此類實作沒有固定的週期。)
一般來說,實作該 RandomGenerator 介面的物件不必是執行緒安全的。 建議多執行緒應用程式使用 ThreadLocalRandom 或(最好)偽隨機數產生器來實作 SplittableGenerator OR JumpableGenerator 介面。
實作 RandomGenerator 的物件通常在密碼學上並不安全。 建議改用 來 SecureRandom 取得一個加密學安全的偽隨機數產生器,供安全敏感的應用程式使用。 不過請注意,該系統 SecureRandom 實作了介面, RandomGenerator 因此在不需要安全產生器的應用中,的 SecureRandom 實例可與其他類型的偽隨機產生器互換使用。
除非另有明確說明,任何方法參數使用 null 都會引發 NullPointerException。
新增17。
Java 文件 java.util.random.RandomGenerator。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Default |
回傳 |
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| IsDeprecated |
若 RandomGenerator(演算法)的實作已被標記為棄用,則回傳 true。 |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
此 |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| NextBoolean() |
回傳一個偽隨機選擇 |
| NextBytes(Byte[]) |
填充使用者提供的位元組陣列,生成的位元組值是從 -128(含)至 127(含)間均勻選擇的偽隨機選取。 |
| NextDouble() |
回傳一個介於零(含)與一(排他)之間的偽隨機 |
| NextDouble(Double, Double) |
回傳一個偽隨機選擇 |
| NextDouble(Double) |
回傳一個偽隨機選擇 |
| NextExponential() |
回傳一個非負 |
| NextFloat() |
回傳一個介於零(含)與一(排他)之間的偽隨機 |
| NextFloat(Single, Single) |
回傳一個偽隨機選擇 |
| NextFloat(Single) |
回傳一個偽隨機選擇 |
| NextGaussian() |
回傳 |
| NextGaussian(Double, Double) |
回傳 |
| NextInt() |
回傳一個偽隨機選擇 |
| NextInt(Int32, Int32) |
回傳一個偽隨機選擇 |
| NextInt(Int32) |
回傳一個偽隨機選擇 |
| NextLong() |
回傳一個偽隨機選擇 |
| NextLong(Int64, Int64) |
回傳一個偽隨機選擇 |
| NextLong(Int64) |
回傳一個偽隨機選擇 |
| Of(String) |
回傳一個利用該 |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
此 |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
此 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |