gpt4 book ai didi

javascript - 什么是计算加权和的有效算法?

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

我不确定这里的技术术语是什么,所以我将不胜感激。

假设一个 Angular 色有多个不同权重的决定。

Decision A: 1
Decision B: 3
Decision C: 5
Sum: 9

代码所做的是将它们相加,这样就有 1/9 的几率做出决定 A,3/9 做出决定 B,5/9 做出决定 C。

有一些因素可以从池中删除和添加某些决定。这些权重不是固定的(例如,对于更聪明的 Angular 色,B 可能为 2,或者根据各自的权重拆分为 B1 和 B2)。

现在我正在做的只是像下面这样的线性搜索(在 JavaScript 中):

let totalWeight = 0;
for (let i = array.length - 1; i >= 0; i--) {
totalWeight += array[i].weight;
}

// this function rolls a random number from 1 to totalWeight
let r = roll(1, totalWeight);
let search = 1;
for (let i = 0; i < array.length; i++) {
let w = array[i].weight;
if (r >= search && r < (search+w)){
return array[i];
}
search += w;
}

但这似乎不是很有效。看起来这里可以有二进制搜索算法,但我似乎想不出一个。有什么想法吗?

最佳答案

如果权重每一轮都在变化,并且不同轮次之间既没有共性也没有不变性,我认为没有一种算法可以显着优于线性扫描。

Here是执行此任务的算法列表。

关于javascript - 什么是计算加权和的有效算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56729550/

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