SplittableRandom 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。
[Android.Runtime.Register("java/util/SplittableRandom", ApiSince=24, DoNotGenerateAcw=true)]
public sealed class SplittableRandom : Java.Lang.Object, IDisposable, Java.Util.RandomGenerators.IRandomGenerator
[<Android.Runtime.Register("java/util/SplittableRandom", ApiSince=24, DoNotGenerateAcw=true)>]
type SplittableRandom = class
inherit Object
interface IRandomGenerator
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 繼承
- 屬性
- 實作
備註
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 類 SplittableRandom 支援產生類型 int為 、 long的 double 偽隨機數,且用法與類 java.util.Random 相似,但在以下方面有所不同:
<UL>
<li>生成值的數列通過了 DieHarder 套件,測試隨機數產生器的獨立性與一致性特性。 (最近一次驗證是在 3.31.1 版本。)這些測試僅驗證某些類型與範圍的方法,但類似的特性至少大致上也適用於其他方法。 <em><週期/em>(任何產生數值序列在重複前的長度)是2<sup>64</sup>。 </李>
<li> 方法 #split 構造並回傳一個新的 SplittableRandom 實例,該實例與目前實例不共享可變狀態。 然而,兩個物件所產生的值在統計上相當於同一執行緒使用單一 SplittableRandom 物件產生相同數量的值,機率極高。
</李>
<Li>SplittableRandom 的實例是 <em>not</em> thread-safe。 它們設計成可以拆分,而不是分享,跨越多個討論串。 例如, java.util.concurrent.ForkJoinTask fork/join-style 使用隨機數的計算可能包含形式 new Subtask(aSplittableRandom.split()).fork()為 的構造。
<li>本類別提供了生成隨機串流的額外方法,這些方法在模式 stream.parallel() 中使用時會採用上述技術。</李>
</ul>
的 SplittableRandom 實例並非加密安全。 考慮改 java.security.SecureRandom 用在安全敏感的應用中。 此外,預設建構的實例除非將 System#getProperty 系統屬性java.util.secureRandomSeed 設為 true,否則不會使用密碼學上隨機的種子。
新增於1.8版本。
的 java.util.SplittableRandomJava 檔。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| SplittableRandom() |
建立一個新的 SplittableRandom 實例,該實例很可能產生與當前程式中其他實例統計上獨立的數值序列;而且通常會因程式呼叫而有所不同。 |
| SplittableRandom(Int64) |
使用指定的初始種子建立一個新的 SplittableRandom 實例。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| JniPeerMembers |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 (繼承來源 Object) |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| Equals(Object) |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| JavaFinalize() |
已淘汰.
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| NextBoolean() |
回傳一個偽隨機 |
| NextBytes(Byte[]) |
待補充 |
| NextDouble() |
回傳一個介於零(含)與一(排他)之間的偽隨機 |
| NextDouble(Double, Double) |
回傳一個介於指定原點(包含)與界限(排他)之間的偽隨機 |
| NextDouble(Double) |
回傳一個介於0之間的偽隨機 |
| NextInt() |
回傳一個偽隨機 |
| NextInt(Int32, Int32) |
回傳一個位於指定原點(包含)與指定界限(獨佔)之間的偽隨機 |
| NextInt(Int32) |
回傳一個介於零(含)與指定界限(排他)之間的偽隨機 |
| NextLong() |
回傳一個偽隨機 |
| NextLong(Int64, Int64) |
回傳一個位於指定原點(包含)與指定界限(獨佔)之間的偽隨機 |
| NextLong(Int64) |
回傳一個介於零(含)與指定界限(排他)之間的偽隨機 |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| Split() |
構造並回傳一個新的 SplittableRandom 實例,該實例與此實例不共享可變狀態。 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
一個均勻偽隨機值的產生器(週期為 2<sup>64</sup>),適用於(包括其他情境)隔離的平行運算,可能產生子任務。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |