gpt4 book ai didi

clojure - 为什么答案中有这么多0?

转载 作者:行者123 更新时间:2023-12-05 08:45:17 26 4
gpt4 key购买 nike

(take 100 (iterate rand-int 300))

当然,每次都会有不同的评估……但通常会有大量的零。结果总是以 300 开头。例如:

(300 93 59 58 25 14 9 4 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)

我期望有 100 个介于 0 和 300 之间的随机整数。

我不明白什么?

最佳答案

请参阅 iterate 的文档:

返回 x、(f x)、(f (f x)) 等的惰性序列。f 必须没有副作用

因此,这就是您的序列始终以 300 开头的原因。

为什么有这么多零?当你像这样使用 iterate 时,rand-int获取先前的结果并将其用作随机数的新上限(不包括)。因此,您的结果可能如下所示:

300
=> 300
(rand-int *1)
=> 174
(rand-int *1)
=> 124
(rand-int *1)
=> 29
(rand-int *1)
=> 17
(rand-int *1)
=> 16
(rand-int *1)
=> 7
...

您可以自己检查一下这个序列是否会导致零。

如果你真的想获得 0 到 300 之间的 100 个随机整数,请使用 repeatedly相反:

(重复 100 #(rand-int 300))

关于clojure - 为什么答案中有这么多0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73088145/

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