module Random: Random
val init : int -> unit
使用参数作为种子初始化域本地生成器。相同的种子始终会产生相同的数字序列。
val full_init : int array -> unit
与 Random.init
相同,但使用更多数据作为种子。
val self_init : unit -> unit
使用系统相关的方式选择随机种子来初始化域本地生成器。如果主机上可用 /dev/urandom
,则它用于提供高度随机的初始种子。否则,将从系统参数(当前时间、进程 ID、域本地状态)计算出随机性较低的种子。
val bits : unit -> int
返回一个非负整数中的 30 个随机位。
val int : int -> int
Random.int bound
返回介于 0(含)和 bound
(不含)之间的随机整数。 bound
必须大于 0 且小于 230。
Invalid_argument
如果 bound
<= 0 或 bound
>= 230。val full_int : int -> int
Random.full_int bound
返回介于 0(含)和 bound
(不含)之间的随机整数。 bound
可以是任何正整数。
如果 bound
小于 231,则 Random.full_int bound
在具有不同 int
大小的系统中产生相同的输出。
如果 bound
小于 230,则 Random.full_int bound
等于 Random.int
bound
。
如果 bound
至少为 230(在 64 位系统或 JavaScript 等非标准环境中),则 Random.full_int
返回一个值,而 Random.int
则引发 Invalid_argument
.
Invalid_argument
如果 bound
<= 0。val int_in_range : min:int -> max:int -> int
Random.int_in_range ~min ~max
返回介于 min
(含)和 max
(含)之间的随机整数。 min
和 max
都可以为负数;min
必须小于或等于 max
。
如果两个边界都适合 32 位有符号整数(即,如果 -231 <= min
且 max
< 231),则 int_in_range
在具有不同 int
大小的系统中产生相同的输出。
Invalid_argument
如果 min > max
。val int32 : Int32.t -> Int32.t
Random.int32 bound
返回介于 0(含)和 bound
(不含)之间的随机整数。 bound
必须大于 0。
Invalid_argument
如果 bound
<= 0。val int32_in_range : min:int32 -> max:int32 -> int32
Random.int32_in_range ~min ~max
返回介于 min
(含)和 max
(含)之间的随机整数。 min
和 max
都可以为负数;min
必须小于或等于 max
。
Invalid_argument
如果 min > max
。val nativeint : Nativeint.t -> Nativeint.t
Random.nativeint bound
返回介于 0(含)和 bound
(不含)之间的随机整数。 bound
必须大于 0。
Invalid_argument
如果 bound
<= 0。val nativeint_in_range : min:nativeint -> max:nativeint -> nativeint
Random.nativeint_in_range ~min ~max
返回介于 min
(含)和 max
(含)之间的随机整数。 min
和 max
都可以为负数;min
必须小于或等于 max
。
Invalid_argument
如果 min > max
。val int64 : Int64.t -> Int64.t
Random.int64 bound
返回介于 0(含)和 bound
(不含)之间的随机整数。 bound
必须大于 0。
Invalid_argument
如果 bound
<= 0。val int64_in_range : min:int64 -> max:int64 -> int64
Random.int64_in_range ~min ~max
返回介于 min
(含)和 max
(含)之间的随机整数。 min
和 max
都可以为负数;min
必须小于或等于 max
。
Invalid_argument
如果 min > max
。val float : float -> float
Random.float bound
返回介于 0 和 bound
(含)之间的随机浮点数。如果 bound
为负数,则结果为负数或零。如果 bound
为 0,则结果为 0。
val bool : unit -> bool
Random.bool ()
返回 true
或 false
,概率分别为 0.5。
val bits32 : unit -> Int32.t
Random.bits32 ()
返回 32 个随机位,表示为介于 Int32.min_int
和 Int32.max_int
之间的整数。
val bits64 : unit -> Int64.t
Random.bits64 ()
返回 64 个随机位,表示为介于 Int64.min_int
和 Int64.max_int
之间的整数。
val nativebits : unit -> Nativeint.t
Random.nativebits ()
返回 32 或 64 个随机位(取决于平台的位宽),表示为介于 Nativeint.min_int
和 Nativeint.max_int
之间的整数。
来自模块 Random.State
的函数显式地操作随机生成器的当前状态。这允许在多线程程序中使用一个或多个确定性 PRNG,而不会受到程序其他部分的干扰。
module State:sig
..end
val get_state : unit -> State.t
get_state()
返回域本地生成器(由基本函数使用)的当前状态的全新副本。
val set_state : State.t -> unit
set_state s
通过将状态 s
复制到其中来更新域本地生成器(由基本函数使用)的当前状态。
val split : unit -> State.t
从由默认函数使用的域本地生成器的当前状态中提取一个全新的 PRNG 状态。(域本地生成器的状态将被修改。)参见 Random.State.split
。