求助贴请求算法大佬指点 这个需求用 js 该怎么实现呢

2022-12-08 14:29:32 +08:00
 viarotel
输入区间值:(可输入多家)
A:60-80
B:50-90
……

输入固定值:(可输入多家)
A:35
B:10
C:90
……

最接近满分的结果值:XX—XX

要求:可输入多个区间值和固定值,根据规则计算出一家最接近的区间值。
注意:结果值也参与到计算中。

计算规则:
基准价:报价的算术平均值;当多于 5 家(含 5 家)时,去掉一个最高和一个最低后的算术平均值。
以基准价为基础,报价与基准价相等者得基准分 30 分,高于基准价的,按每高于基准价 1%扣 1 分的比例从基准分中进行扣分,扣完为止;报价低于基准价的,按每低于基准价 1%加 1 分的比例在基准分上进行加分,最高加 5 分;报价低于基准价 5%(不含 5%)以上,按每再低 1%扣 0.5 分的比例从得分中扣分,扣完为止。不足±1%,按线性插入法计算。
1084 次点击
所在节点    程序员
5 条回复
yhappy
2022-12-08 14:39:53 +08:00
亲测 ChatGPT 可解
viarotel
2022-12-08 14:40:50 +08:00
@yhappy 我也用 ChatGPT 试了几次 有时候给的代码运行不了 或者 结果不对
TomVista
2022-12-08 14:59:52 +08:00
我连题都看不明白,你告诉我 ChatGPT 可解 .dog
zhuangjia
2022-12-08 15:16:29 +08:00
题目没看明白,区间值是什么意思,计算规则里面也没有体现区间值的作用
viarotel
2022-12-08 15:27:21 +08:00
可能是我没说太清楚我重新整理了一下
```javascript
// 给出一组数据 values 中的值如果是数字表示为固定值 如果为长度为 2 的数组则表示为范围值 他们统称为报价
const values = [10, [60, 80], 35, [50, 90], 90];
// 计算规则
// 1. 基准价 = 报价的算术平均值(如果数据是范围值那么范围之间所有值参与平均值计算) 当 values 数组长度大于等于 5 时,去掉一个最高和一个最低后的算术平均值。
// 2. 以基准价为基础 报价与基准价相等者得基准分 30 分,高于基准价的,按每高于基准价 1%扣 1 分的比例从基准分中进行扣分,扣完为止
// 3. 报价低于基准价的,按每低于基准价 1%加 1 分的比例在基准分上进行加分,最高加 5 分
// 4. 报价低于基准价 5%(不含 5%)以上,按每再低 1%扣 0.5 分的比例从得分中扣分,扣完为止
// 5. 不足±1%,按线性插入法计算
// 6. 结果值也参与到计算中去 以算出最优值
// 根据规则计算出最接近的满分(最大)的值
// 下面是待完善的函数 可输入多个固定值和区间值
const optimization = (arr) => {};
// 执行该函数 输出满分值(最大值)
console.log(optimization(values));
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/901076

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX