gpt4 book ai didi

c# - 如何根据百分比概率做出选择

转载 作者:太空狗 更新时间:2023-10-29 23:32:41 32 4
gpt4 key购买 nike

我希望使用 this 中提供的答案发布以从列表中随机选择独特的项目。

按照所描述的方法,在循环的每次迭代中,我都会生成一个概率值,即当前项目从列表中被选中的概率百分比。

我需要知道的是如何使用这个百分比值来挑选(或不挑选)元素。

这是我的代码,带有 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 开始

解决方案应该灵活,可以处理范围更广的值,最好是任何值。

谢谢

评论

对于这个问题的 future 读者,我应该澄清一下,起初我认为概率值是 0 到 100 之间的某个百分比,但实际上它是 0 到 1 之间的值,因此与 Random.NextDouble() 的返回值完全匹配。因此可用于比较,如下面的答案所述。

最佳答案

要使用您的概率,请将其与服从 [0, 1] 均匀分布的随机变量样本进行比较。

if (Random.NextDouble() <= probability)
// Take the ith element in the list

你得到的循环将是:

List<???> selectedItems = new List<???>();
for (var i = 0; i < remainingIndices.Count; i++)
{
var probability = pixelsToAdd / (float)(remainingIndices.Count - i);
if (Random.NextDouble() <= probability)
{
selectedItems.Add(items[i]);
pixelsToAdd--;
}
}

关于c# - 如何根据百分比概率做出选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666876/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com