【问题标题】:cpp - std averagecpp - 标准平均值
【发布时间】:2012-05-18 17:27:14
【问题描述】:

有没有更好的方法来计算两次双打的平均值?我该如何改进/纠正下面的代码?

double original_one, original_two; // can be any double >= 0 
double used_one = original_one;
double used_two = original_two;
if ( original_one == 0 ) used_one = 1;
if ( original_two == 0 ) used_two = 1;
double average = used_one * used_two / 2;    // average!

【问题讨论】:

  • 这不是你计算平均值的方式。平均值 = 总和 / 计数
  • 等等..是的,这与平均水平相差甚远...
  • @abrahab :但是是什么让你觉得你需要*
  • 您使用的是什么“平均”定义?
  • @AshBurlaczenko:这就是你做算术平均值的方式。也可以做(例如)几何平均值,即sqrt(a*b)。还有调和平均等。但你通常是对的,没有相反的指示,“平均”意味着“算术平均”。

标签: c++ average


【解决方案1】:

两个数字的算术平均值是通过将它们相加然后除以二来计算的......

double average = (original_one + original_two) / 2;

这是计算平均值的一种方法,还有其他几种方法,但这是最常见的。

【讨论】:

  • 这是算术平均值。平均值可能意味着许多不同的东西(尽管我没有遇到任何看起来像 OP 的平均值的东西)
  • @juanchopanza 平均值是集中趋势的度量,所以是的,你是对的,有许多不同的方法可以找到平均值。然而,OP 不是集中趋势的衡量标准。他总是会产生一个超出值范围的值(与它无关)。我将进行编辑以反映所选的特定方法。谢谢。
  • 我需要两个双精度的任何 relative 值来创建评级。 + 的简单平均值似乎可以显示两个人的重量并与其他人比较
猜你喜欢
  • 2020-12-26
  • 2014-03-21
  • 2018-01-21
  • 1970-01-01
  • 2022-12-23
  • 1970-01-01
  • 2016-03-11
相关资源
最近更新 更多