gpt4 book ai didi

algorithm - 根据概率和约束从列表中选择一个项目

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:34 24 4
gpt4 key购买 nike

我有一个项目列表,我想随机选择其中一个。它应该比列表中的其他项目更有可能选择其中的一些项目,因此每个项目都可以设置某种概率。

此外,其中一些项目,或更好:它们的概率,取决于不同的约束条件。例如,如果变量 X > 1,列表项 A 的概率应该更高。或者如果变量 Z 为真,列表项 B 的概率应该为 0(即不得选择)。

现在,我假设最简单的方法是定义每个项目的概率并将其存储在一个 ma 或两个数组或类似的东西中。但这真的是最好的方法吗,还有其他选择吗?我如何将这些约束与随机选择和概率联系起来?

最佳答案

您可以对每个项目“称重”并合计重量。然后生成一个介于 1 和权重总数之间的随机数。然后找到与该随机数匹配的项目。以下是步骤:

第 1 步:计算每个点(或权重),然后将所有点相加。

    Item RunningTotal
A 5 -- 5 points
B 6 -- 1 point
C 6 -- 0 points
D 8 -- 2 points
-------------------------------------
TOTAL 8 points

第 2 步:使用您的语言的随机数函数生成一个介于 1 和总分之间的随机数。像这样的东西:

int match = Math.Random(1, 8); -- 8 is the total of the points.

第 3 步:找到与随机数匹配的项目。

int runningTotal = 0;
int index;

for(index = 1; index < Items.Count(); index++)
{
if(Items[index].Points == 0)
continue;

runningTotal += Items[index].Points;

if(runningTotal >= match)
break;
}

return Items[index]; // the winner

关于algorithm - 根据概率和约束从列表中选择一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34365855/

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