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

在Google Sheets中生成整数权重使加权均值为整数的方法

如何生成整数权重确保加权均值为整数

首先明确核心条件:加权均值 = (Σvalues[i]×weights[i]) / (Σweights[i]),要让这个结果是整数,本质就是分子必须是分母的整数倍,也就是存在整数k,使得 Σvalues[i]×weights[i] = k×Σweights[i],变形后等价于:Σweights[i]×(values[i] - k) = 0。

下面给几个实用的方法,直接就能用:

方法1:选目标均值,凑权重平衡差值

  1. 先选一个整数k作为目标加权均值,建议选在给定values的最小值和最大值之间(比如选values里的某个数,或者中间的整数,这样更容易凑出正权重)
  2. 计算每个value和k的差值:d_i = values[i] - k
  3. 找正整数权重,让正差值的加权总和等于负差值的加权总和的绝对值

举个你给的例子:values={17,9,13,8},选k=9(values里的数),差值d_i分别是8、0、4、-1。我们只需要让8w₁ +4w₃ = 1×w₄,随便取w₁=1、w₃=1,那w₄=8×1+4×1=12,w₂随便取正整数比如1,最终权重就是{1,1,1,12}。验证一下:

  • 总加权和:17×1 +9×1 +13×1 +8×12 = 17+9+13+96=135
  • 总权重和:1+1+1+12=15
  • 加权均值:135÷15=9,是整数。

方法2:固定部分权重,解方程求剩余权重

如果n不大(比如你的n=4),可以先给前n-1个权重随便设正整数,然后解方程求最后一个权重:
比如给values={17,9,13,8}设w₁=1、w₂=1、w₃=1,总加权和前三项是17+9+13=39,总权重和前三项是3。设最后一个权重为x,要求(39+8x)/(3+x)是整数。

设这个整数为k,整理方程得:39+8x =k(3+x) → x=(3k-39)/(8-k)
试k的取值(k在8到17之间,因为加权均值肯定在values的最小和最大值之间):

  • 试k=11:x=(3×11-39)/(8-11)=(-6)/(-3)=2,是正整数。
    最终权重{1,1,1,2},验证:总加权和55,总权重和5,55÷5=11,符合要求。

方法3:特殊情况快速解法

如果values的算术均值本身就是整数,那直接给所有权重设成同一个正整数就行(比如全设1,或者全设5),此时加权均值等于算术均值,自然是整数。

比如values={10,12,14},算术均值是12,权重全设2的话,加权均值=(20+24+28)/(2+2+2)=72/6=12,是整数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:46:26