模組 Random.State

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 作為輸入的狀態相同的隨機數。