我希望从矢量中挑选出随机(即伪随机)元素。该函数将有一个输入,称之为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?
答案 0 :(得分:9)
您希望此处repeatedly
不是iterate
(repeatedly 2 #(rand-nth [2 3 4 5 6 7]))
答案 1 :(得分:3)
在向量中从向量r
返回v
个随机元素的函数是......
(defn choose-random [r v]
(mapv v (repeatedly r #(rand-int (count v)))))