Math 是否有可能获得一组在多个进程中拆分的数字的平均值?

Math 是否有可能获得一组在多个进程中拆分的数字的平均值?,math,distributed,distributed-computing,Math,Distributed,Distributed Computing,在数学SE上得到了一个很好的答案: 假设我有一系列数字: 565 212 812 895 443 73 468 900 299 993 252 740 291 112 (and thousands more) 我收到的每封邮件都包含号码和其他一些需要处理的内容。一些处理过程可能很耗时,因此我想将其分为多个过程。我想以循环(或ZMQ路由器/经销商)的方式将数字发送到n进程之一,并对数字进行一些处理。问题是我想在不同的过程中保持所有数字的滚动平均值: INPUT->Worker\n->Averag

在数学SE上得到了一个很好的答案:

假设我有一系列数字:

565
212
812
895
443
73
468
900
299
993
252
740
291
112
(and thousands more)
我收到的每封邮件都包含号码和其他一些需要处理的内容。一些处理过程可能很耗时,因此我想将其分为多个过程。我想以循环(或ZMQ路由器/经销商)的方式将数字发送到
n
进程之一,并对数字进行一些处理。问题是我想在不同的过程中保持所有数字的滚动平均值

INPUT->Worker\n->Average collector->OUTPUT


如果我把数字分成三个一组,然后取子集的平均值,然后取三个平均值的平均值,我得到的结果不正确。是否可以将此工作拆分为多个流程?另一种方法是只将数字推送到
平均器
过程。这似乎很好,但我想知道是否有一个更简单的解决方案,我错过了

这个问题取决于这个概念。为了计算整个组的统计信息,需要为每个子组提供足够的统计信息。对于平均值,充分的统计数据是每个子组的数据数量和每个子组的数据总数。使用每个子组的这两项,您可以精确计算整个组的平均值

对于整个组的方差(相当于标准偏差),充分的统计数据是数据的数量、数据的总数以及每个子组的数据平方的总和


充分的统计数据不一定比整个子组更简洁,但对于均值和方差,您只需要几个项目。

“您可以准确计算整个组的均值”——如何计算?如果我把3个数字放在一组中,6个放在另一组中,5个放在另一组中,取平均值的平均值,它与整个集合的平均值不匹配。移动到这里,看起来更像是一个数学问题:@jcollum(整体平均值)=(sum1+sum2+sum3+…)/(n1+n2+n3+…)