You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带权重的习惯追踪器加权平均计算方案技术问询

习惯追踪器加权进度计算问题

我正在开发一款习惯追踪器,支持根据用户输入的不同类别任务完成数据,可视化目标完成进度。目前包含4个任务类别:physical、emotional、financial、professional。

原本的逻辑简单直接:勾选任务完成后计算对应类别的完成百分比,每周对各类别完成百分比取平均,得到周目标完成率。

现在需要新增类别权重分配功能:例如给physical设权重2,代表其重要性为基准的2倍;给financial设权重-1.5,代表其重要性低于基准类别(emotional、professional),远低于physical。

首个原型采用滑块调节权重,移动一个滑块会让其余3个滑块按比例反向移动以保持总权重固定,但这造成了UX问题。

现尝试基于单个类别的权重(及基准值)独立计算得分,但存在明显问题:若部分类别权重过高,加权平均分可能超过100%,甚至出现未完成所有任务却显示100%(或更高,未做min(100, average_complete)处理)的情况。

我亟需找到一种数学方法,实现以下加权平均计算要求:无论权重如何设置,只要有任务完成,结果>0%;只要有任务未完成,结果<100%。

核心问题

  1. 是否存在无需每次修改权重就重新计算所有值的数学实现方式?
  2. 若不存在,软件设计中是否有标准的编程/数学方法,可在权重导致结果超出范围时,计算出接近0%或100%的模糊但相对准确的值?

编辑补充

以下为示例数据,每个类别的基准完成分为100:

ID | DONE | CATEGORY      | WT | SCORE
____________________________________
0  |  1    | physical     |  2 | 200
-----------------------------------    
1  |  1    | emotional    |  2 | 200
-----------------------------------
2  |  0    | financial    |  1 | 0
-----------------------------------
3  |  0    | professional |  1 | 0

(SCORE计算公式为:DONE * 100 * WT)
预期平均完成率:66.67%

编辑补充2

当前新增负权重后,可能出现得分总和为0或负数,导致加权平均分(除以总权重)为0或负数。统计场景中通常允许负权重,但此处负权重仅代表类别重要性低于基准。


内容的提问来源于stack exchange,提问作者Daveh0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:50:58