【问题标题】:calculate the harmonic mean and geometric mean without exceeding double max value?在不超过双最大值的情况下计算调和平均数和几何平均数?
【发布时间】:2018-03-10 19:26:55
【问题描述】:

对于一个向量(一组数字),其乘法或除法将超过 double 和/或 decimal 类型的最小值或最大值,如何计算几何平均数和调和平均数?

我发现的任何现有实现都没有考虑到这一点(即他们可以计算一个小集合,但不能计算一个大集合)。

【问题讨论】:

  • 如果性能很重要,你可以在这个问题中寻找想法:stackoverflow.com/q/19980319/5311735。它是 C++,但问题是一样的,并且 double 在 C++ 和 C# 中的行为相同。
  • @Evk 感谢该链接。这是非常有帮助的。我将尝试将该方法移植到 c#。

标签: c# .net statistics mean geometric-mean


【解决方案1】:

可以通过将任意大小的数字(例如大于任何 MaxValue)表示为字符串并编写计算结果的方法来相乘。

如果你在学校做过“长乘法”,那就是要遵循的算法,一次只计算一个数字,然后从最低有效位到最高有效位。

同样,您可以通过编写“长除法”方法来对这些基于字符串的数字进行除法。您可以基于这些构建几何平均值的方法。我不知道“谐波平均值”...但我希望那时也可以解决。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    相关资源
    最近更新 更多