【发布时间】:2014-04-21 20:24:00
【问题描述】:
我希望从向量中挑选出随机(即伪随机)元素。该函数将有一个输入,称为 r,它将选择要选择的元素的数量。此外,称为 v 的向量也必须是输入。这是我从未尝试过的事情,也不知道在这个过程中从哪里开始。
假设进入构造将是 r 小于 v 中的元素数量。从 v 中选择的重复元素也不会成为问题。需要明确的是,元素将是严格的数字,实际上它们将是浮点数,我想在选择时保留该结构。
我尝试了一些类似的东西
(take 2 (iterate rand-nth [2 3 4 5 6 7]))
但从列表中返回向量和一个随机元素,即
([2 3 4 5 6 7] 7)
来自 java 的一些类似帖子包括:How to choose a random element in this array only once across all declared objects in main?
【问题讨论】:
-
(repeatedly n (rand-int (count v))) -
如果允许重复元素,为什么
r必须限制在v中的元素数量? -
这是我想施加的约束。我在 v 中寻找 r 并且不想要 |r|超过 v 的长度。这是人为的约束。