我希望使用这篇文章所提供的答案从列表中随机选择唯一项。
按照所描述的方法,在循环的每次迭代中,我生成一个概率值,表示当前项被从列表中选中的百分比。
我需要知道如何使用这个百分比值来选择(或不选择)该项。
以下是我的代码,其中remainingIndices
是一个List<int>
:
for (var i = 0; i < remainingIndices.Count; i++)
{
var probability = pixelsToAdd / (float)(remainingIndices.Count - i);
}
pixelsToAdd
是120而remainingIndices.Count
是3600。我得到的概率值从0.0333333351开始。
解决方案应该灵活,可以处理更广泛的值,最好是任何值。
谢谢
评论
对于这个问题的未来读者,我应该澄清一下,起初我认为概率值是在0和100之间的某个百分比,但实际上它是在0和1之间的一个值,因此与Random.NextDouble()
的返回值完美匹配,可以像下面的答案所述进行比较。