我正在做一个项目,该项目需要我编写一个从集合中选择指定数量的随机元素的函数。然后将这些元素映射到一个变量以供以后比较。
所以在我的场景中,我必须选择任何给定集合的 5%。
let rec randomSet (a:Set<string>) =
let setLength = (a.Count / 100) * 5
let list = []
let rand = System.Random
if set.Length <> setLength then
// some code will go here
randomSet setLength eIDS
else
set
^请批评我的代码,我只在 F# 中编写了一个星期。
我试过递归地做,但我觉得这是错误的方法。我尝试过其他方法,但它们使用 .take 函数,因此每次返回的集合都是相同的。
有任何想法吗?我不追求一组中的一个元素,我追求的是扔给它的任何一组的 5%。
这不是同一个问题:How can I select a random value from a list using F#
如果你认为是,请解释。