【发布时间】:2020-12-07 13:28:51
【问题描述】:
想象一个按降序排列的元素列表:
List<T> list = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
如何实现 Random,以便第一个元素比其他元素更有可能被选中?所以说,20% 得到索引 1,17.5% 得到索引 2,15% 得到索引 3,等等。但是,机会不应该那么严重,因为它需要加起来 100%。还需要注意的是,列表可以是任意长度,因此不能硬编码。
总结:我如何实现随机,以便可以从 n 个元素的列表中选择索引,其中前几个 n 元素比最后几个元素有更高的机会被选择,所以按降序排列?
【问题讨论】:
-
"比如说,20% 得到索引 1,...",这就是你定义一个函数来处理基于索引和长度的权重的部分。然后你在上面拍weighted random numbers
标签: c# .net statistics