語言

IRandomGenerator 介面

定義

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 介面設計用以提供一個通用協定,用於產生隨機或(更常見的)偽隨機數列(或布林值)的物件。 這樣的序列可以透過反覆呼叫回傳單一偽隨機選擇值的方法,或是呼叫回傳一連串偽隨機選擇值的方法來獲得。

理想情況下,給定一個隱含或顯式指定的值範圍,每個值應獨立且均勻地從該範圍內選擇。 實務上,可能只能接受某種程度的獨立性與一致性。

在 、 intlongboolean 值的情況下,若沒有明確指定範圍,則範圍包含該類型的所有可能值。 在 和 double 值的情況下float,首先總是從兩個<sup>w</sup> 值介於 0.0(包含)到 1.0(排他值)的集合中均勻選擇一個值,其中 w 代表Float#PRECISIONfloat值,Double#PRECISIONdouble對值表示,且相鄰值相差 2<個增>減;w</sup>(注意此集合是所有介於 0.0(包含)與 1.0(排他)之間可表示浮點數集合子集);若指定了明確範圍,則該數字會經過計算縮放與平移,使其看起來大致均勻地從該顯式範圍中選取。

每個回傳一個串流的方法都會產生一組數值流,每個值的選擇方式與回傳單一偽隨機選擇值的方法相同。 例如,若 rRandomGenerator作 ,則方法呼叫 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

回傳 RandomGenerator 滿足演算法狀態位元大於或等於 64 的最小要求。

Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
IsDeprecated

若 RandomGenerator(演算法)的實作已被標記為棄用,則回傳 true。

JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

RandomGenerator 介面設計用以提供一個通用協定,用於產生隨機或(更常見的)偽隨機數列(或布林值)的物件。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
NextBoolean()

回傳一個偽隨機選擇 boolean 的值。

NextBytes(Byte[])

填充使用者提供的位元組陣列,生成的位元組值是從 -128(含)至 127(含)間均勻選擇的偽隨機選取。

NextDouble()

回傳一個介於零(含)與一(排他)之間的偽隨機 double 值。

NextDouble(Double, Double)

回傳一個偽隨機選擇 double 的值,介於指定原點(包含)與指定界限(獨佔)之間。

NextDouble(Double)

回傳一個偽隨機選擇 double 的值,介於零(包含)與指定界限(排他)之間。

NextExponential()

回傳一個非負 double 值,該值是從平均值為1的指數分布中偽隨機選擇。

NextFloat()

回傳一個介於零(含)與一(排他)之間的偽隨機 float 值。

NextFloat(Single, Single)

回傳一個偽隨機選擇 float 的值,介於指定原點(包含)與指定界限(獨佔)之間。

NextFloat(Single)

回傳一個偽隨機選擇 float 的值,介於零(包含)與指定界限(排他)之間。

NextGaussian()

回傳 double 一個偽隨機值,從平均值為0、標準差為1的高斯分布(常態分布)中選擇。

NextGaussian(Double, Double)

回傳 double 一個偽隨機值,該值由高斯(常態)分布中選擇,均值與標準差由參數指定。

NextInt()

回傳一個偽隨機選擇 int 的值。

NextInt(Int32, Int32)

回傳一個偽隨機選擇 int 的值,介於指定原點(包含)與指定界限(獨佔)之間。

NextInt(Int32)

回傳一個偽隨機選擇 int 的值,介於零(包含)與指定界限(排他)之間。

NextLong()

回傳一個偽隨機選擇 long 的值。

NextLong(Int64, Int64)

回傳一個偽隨機選擇 long 的值,介於指定原點(包含)與指定界限(獨佔)之間。

NextLong(Int64)

回傳一個偽隨機選擇 long 的值,介於零(包含)與指定界限(排他)之間。

Of(String)

回傳一個利用該RandomGenerator演算法的實例name

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

RandomGenerator 介面設計用以提供一個通用協定,用於產生隨機或(更常見的)偽隨機數列(或布林值)的物件。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference

(繼承來源 IJavaPeerable)
UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

RandomGenerator 介面設計用以提供一個通用協定,用於產生隨機或(更常見的)偽隨機數列(或布林值)的物件。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於