V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
viarotel
V2EX  ›  程序员

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

  •  1
     
  •   viarotel · 2022-12-08 14:29:32 +08:00 · 1043 次点击
    这是一个创建于 709 天前的主题,其中的信息可能已经有所发展或是发生改变。
    输入区间值:(可输入多家)
    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%,按线性插入法计算。
    5 条回复    2022-12-08 15:27:21 +08:00
    yhappy
        1
    yhappy  
       2022-12-08 14:39:53 +08:00
    亲测 ChatGPT 可解
    viarotel
        2
    viarotel  
    OP
       2022-12-08 14:40:50 +08:00
    @yhappy 我也用 ChatGPT 试了几次 有时候给的代码运行不了 或者 结果不对
    TomVista
        3
    TomVista  
       2022-12-08 14:59:52 +08:00
    我连题都看不明白,你告诉我 ChatGPT 可解 .dog
    zhuangjia
        4
    zhuangjia  
       2022-12-08 15:16:29 +08:00
    题目没看明白,区间值是什么意思,计算规则里面也没有体现区间值的作用
    viarotel
        5
    viarotel  
    OP
       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));
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   984 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:50 · PVG 06:50 · LAX 14:50 · JFK 17:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.