gpt4 book ai didi

javascript - 如何计算阈值(基础数学)

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

我正在寻找一种算法来以最灵活的方式计算它:

我正在进行成本计算,并且正在寻找一个优雅的解决方案来解决以下问题:

单位 (U) 可以是任意数字。

可以有无限数量的阈值 (T),但它们都与定价 (P) 相关,即:

T: [10, 200, 1500, 2712]

P: [5, 4, 3, 1, 10]

低于 10 件的费用为 5 欧元,

10-200 之间的任何单位成本 4 欧元,

200-1500 之间的任何单位成本 3 欧元,

1500-2712 之间的任何单位成本 1 欧元,

任何超过 2712 的东西都需要 10 欧元

所以 1600 单位的成本是:

50(从 0 到 10 的单位)+ 760(从 10 到 200 的单位)+ 3900(从 200 到 1500 的单位)+ 100(其余 100 个单位在 1500 以上)= 4810 欧元

什么是计算这个的好方法?

请记住,任何值都是可变的,所有阈值以及相应的价格和单位在任何时候都可以是任何值。 (价格始终与阈值相关的唯一固定因素)

€:我尝试用嵌套的 if/else 语句来做一些事情,但它完全是一团糟而且一点也不灵活,因为阈值也可能超过 4 个值……

最佳答案

var T = [10, 200, 1500, 2712];
var P = [5, 4, 3, 1, 10];
function calculate(n){
var i = 0;
var current = 0;
var cost = 0;
while(n > 0 && i < T.length){
var min = Math.min(T[i] - current, n);
current += min;
cost += P[i] * min;
n -= min;
i += 1;
}
if(n > 0){
cost += P[i] * n;
}
return cost;
}

在这里,我使用变量current 跟踪计算成本的单位。最后,我检查是否还有未计算成本的剩余单元,我将 P 中的最后一个元素与剩余单元相乘以获得总成本。

关于javascript - 如何计算阈值(基础数学),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44847697/

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