Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
对于一个向量(一组数字),其乘法或除法将超过 double 和/或 decimal 类型的最小值或最大值,如何计算几何平均值和调和平均值?
我发现的任何现有实现都没有考虑到这一点(即他们可以计算一个小集合,但不能计算一个大集合)。
通过将它们表示为字符串并编写计算结果的方法,可以将任意大小的数字(例如大于任何 MaxValue)相乘。
如果你在学校里做过“长乘法”,那就是要遵循的算法,一次只计算一个数字,然后从最低有效位到最高有效位。
同样,您可以通过编写“长除法”方法来对这些基于字符串的数字进行除法。您可以基于这些构建几何平均值的方法。我不知道“谐波平均值”……但我希望那时也可以解决。
希望这可以帮助。