假设我有 N 个整数,其中 N 可以变得很大,但每个 int 都保证在 0 和某个上限 M 之间,其中 M 很容易适合有符号的 32 位字段。
如果我想计算这 N 个整数的平均值,我不能总是在同一个带符号的 32 位空间中将它们全部相加和除以 - 如果 N 太大,分子就有溢出的风险。此问题的一种解决方案是仅使用 64 位字段进行计算,以保持更大的 N,但此解决方案无法扩展 - 如果 M 是一个大的 64 位整数,则会出现相同的问题。
有谁知道可以计算同一位空间中正整数列表的平均值的算法(最好是 O(N))?没有做一些便宜的事情,比如使用两个整数来模拟一个更大的整数。