module State:sig
..end
type
t
PRNG 狀態的類型。
val make : int array -> t
建立一個新的狀態並使用給定的種子初始化它。
val make_self_init : unit -> t
建立一個新的狀態,並以系統相依的方式選擇的隨機種子初始化它。種子的取得方式如 Random.self_init
中所述。
val copy : t -> t
傳回給定狀態的副本。
val bits : t -> int
val int : t -> int -> int
val full_int : t -> int -> int
val int_in_range : t -> min:int -> max:int -> int
val int32 : t -> Int32.t -> Int32.t
val int32_in_range : t -> min:int32 -> max:int32 -> int32
val nativeint : t -> Nativeint.t -> Nativeint.t
val nativeint_in_range : t -> min:nativeint -> max:nativeint -> nativeint
val int64 : t -> Int64.t -> Int64.t
val int64_in_range : t -> min:int64 -> max:int64 -> int64
val float : t -> float -> float
val bool : t -> bool
val bits32 : t -> Int32.t
val bits64 : t -> Int64.t
val nativebits : t -> Nativeint.t
這些函式與基本函式相同,只是它們使用(並更新)給定的 PRNG 狀態,而不是預設狀態。
val split : t -> t
從給定的 PRNG 狀態中提取一個新的 PRNG 狀態。(給定的 PRNG 狀態會被修改。)新的 PRNG 在統計上與給定的 PRNG 獨立。可以從這兩個 PRNG 中以任何順序提取資料,而沒有相關性的風險。這兩個 PRNG 稍後可以被任意次數地分割。
val to_binary_string : t -> string
將 PRNG 狀態序列化為不可變的位元組序列。請參閱 Random.State.of_binary_string
以進行反序列化。
此處的 string
類型僅用於序列化,其編碼不具人類可讀性,可能也無法列印。
請注意,序列化格式在不同的 OCaml 版本中可能會有所不同。
val of_binary_string : string -> t
反序列化呼叫 Random.State.to_binary_string
所取得的位元組序列。產生的 PRNG 狀態會產生與傳遞給 Random.State.to_binary_string
作為輸入的狀態相同的隨機數。
Failure
。請注意,序列化格式在不同的 OCaml 版本中可能會有所不同。與 Marshal
模組提供的函式不同,此函式要麼產生有效狀態,要麼以 Failure
例外狀況乾淨地失敗。它可以安全地用於使用者提供的、不受信任的輸入。