[] | n -> ( Random.int max_int ) :: ( random_list -6ren">
gpt4 book ai didi

random - OCaml : exception Invalid_argument ("Random.int")? 的解决方法是什么

转载 作者:行者123 更新时间:2023-12-01 23:03:56 25 4
gpt4 key购买 nike

我有这段代码:

let rec random_list = function
| 0 -> []
| n -> ( Random.int max_int ) :: ( random_list (n-1) )

它可以编译,但是当我执行它时,会出现此错误:
exception Invalid_argument("Random.int")

这个问题的解决方法是什么?

最佳答案

documentation说:

Random.int bound returns a random integer between 0 (inclusive) and bound (exclusive). bound must be greater than 0 and less than 2^30.



所以最接近你想要的是:
let my_max_int = (1 lsl 30) - 1 in
Random.int my_max_int

正如 gsg 建议的那样,使用 Random.bits ()更清洁以获得几乎相同的结果(它也可以返回 2^30 - 1 )。

如果你真的想得到任何正的 native 整数,也许你可以使用 Random.nativeint ,但这意味着您必须使用模块 NativeintNativeint.t而不是 int .

关于random - OCaml : exception Invalid_argument ("Random.int")? 的解决方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com