从矢量中挑选"随机"元素

sun*_*ots 3 clojure clojure-contrib

我希望从矢量中挑选出随机(即伪随机)元素.该函数将有一个输入,称之为r,它将选择要选择的元素数.此外,称为v的向量也必须是输入.这是我从未尝试过的,也不知道从哪里开始.

进入构造的假设将是r小于v中的元素数量.从v中选择的重复元素也不是问题.要明确的是,元素将是严格的数字,实际上它们将是浮点数,我希望在选择时保留该结构.

我尝试了一些类似的东西

(take 2 (iterate rand-nth [2 3 4 5 6 7]))
Run Code Online (Sandbox Code Playgroud)

但是从列表中返回向量和一个随机元素,即

([2 3 4 5 6 7] 7)
Run Code Online (Sandbox Code Playgroud)

来自java的一些类似帖子包括:如何在main中的所有声明对象中只选择一次该数组中的随机元素?

从List <E>中取n个随机元素?

A. *_*ebb 9

你要repeatedly没有iterate在这里

(repeatedly 2 #(rand-nth [2 3 4 5 6 7]))
Run Code Online (Sandbox Code Playgroud)