一尘不染

从列表中选择N个随机元素 在C#中

c#

我需要一种快速算法来从通用列表中选择5个随机元素。例如,我想从中获取5个随机元素List<string>


阅读 494

收藏
2020-05-19

共1个答案

一尘不染

遍历每个元素,使每个元素的选择概率=(所需数量)/(剩余数量)

因此,如果您有40个项目,则第一个将有5/40的机会被选中。如果是,那么下一个机会就有4/39机会,否则就有5/39机会。到结束时,您将拥有5件商品,而且通常在此之前都拥有它们。

2020-05-19