【发布时间】:2013-07-03 18:49:30
【问题描述】:
所以 sCount 是源数组中的元素个数,iCount 是我要移除的元素个数。
let indices = Array.init iCount (fun _ -> rng.Next sCount) |> Seq.distinct |> Seq.toArray |> Array.sort
上述方法的问题是我需要专门删除 iCount 索引,这并不能保证。
我尝试过类似的东西
while indices.Count < iCount do
let x = rng.Next sCount
if not (indices.Contains x) then
indices <- indices.Add x
还有一些其他类似的东西......
尽管我尝试过的每一种方法都非常缓慢 - 我正在处理大小高达 2000 万个元素的源数组。
【问题讨论】: