模块 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 的状态相同的随机数。