【问题标题】:Recalculate an average value重新计算平均值
【发布时间】:2017-04-29 20:33:32
【问题描述】:

在我的 Java 应用程序中,我需要根据以下数据重新计算平均值:

  1. 我知道当前的平均值 - avgValue
  2. 我知道 avgValue 是 12 个值列表的平均值 - count

当新的value 被添加到之前 12 个值的列表中时,如何根据此信息重新计算 avgValue。 13 个值列表的新 avgValue 是什么 - count + 1

【问题讨论】:

    标签: math mathematical-optimization


    【解决方案1】:

    如果您想确保不会溢出您的数据类型,那么您将希望避免计算总和。我建议使用:

    New average = avgValue + ((New value - avgValue) / 13)
    

    【讨论】:

    • 工作得更快,但我的测试失败并出现以下错误 - 预期: 但是:
    • @alexanoid 这是数值精度。你认为这是失败?你真的认为你会拥有 16 位有效数字吗?
    【解决方案2】:
    Current Sum = avgValue * 12
    New sum = current Sum + New value
    New average = New sum / 13
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 2013-01-14
      • 2012-06-19
      • 1970-01-01
      相关资源
      最近更新 更多