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

已知双变量求加权混合达目标值的百分比权重计算方法

双变量加权混合匹配目标值的权重计算方法

核心计算逻辑

你只需要解二元一次方程组即可得到精确解,推导过程如下:
设x的权重为w_x(取值范围0-1,乘以100%就是百分比占比),y的权重为w_y,天然满足约束条件:

w_x + w_y = 1
加权和等于目标值的公式为:
w_x * x + w_y * y = target
把w_y = 1 - w_x代入上式整理后可得闭式解,没有比这套公式计算效率更高的方案,时间复杂度为O(1):

  • w_x = (target - y) / (x - y)
  • w_y = 1 - w_x

代入你给出的数值(target=11.82、x=9、y=15)计算:
w_x = (11.82 - 15) / (9 - 15) = 0.53,对应x占比53%;w_y=0.47,对应y占比47%,刚好可以加权得到11.82的目标值,你举的55%/45%是近似配比。

可直接复用的函数实现

以下是Python版本的实现,额外加了边界兼容逻辑:

def calc_mix_weight(target: float, x: float, y: float) -> tuple[float, float]:
    # 兼容x和y相等的特殊场景,此时任意权重混合结果都相同
    if abs(x - y) < 1e-9:
        return (0.5, 0.5)
    w_x = (target - y) / (x - y)
    w_y = 1 - w_x
    # 如果要求权重必须在0-1区间内,可以打开下面的注释做截断
    # w_x = max(0.0, min(1.0, w_x))
    # w_y = 1 - w_x
    return (round(w_x, 4), round(w_y, 4))

# 测试你的场景
w_x, w_y = calc_mix_weight(11.82, 9, 15)
print(f"x权重:{w_x*100:.2f}%,y权重:{w_y*100:.2f}%")

边界说明

如果计算出来的w_x或w_y不在0-1区间内,说明你给出的target不在x和y的取值区间范围内,无法用两个正权重的混合得到目标值,需要调整x、y的取值或者target的设定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:39:03