可以是平均& Python中的方差计算算法可使用鸿沟和征服方法递归实施?

发布于 2025-01-24 01:37:46 字数 1043 浏览 2 评论 0原文

当列表的长度事先已知时,使用d& c的递归平均计算很容易。

def mv_recursive (X):
    if len(X)==1:
        mu = X[0]
        var = 0
    else:
        mu = (int(len(X)/2)/len(X))*mv_recursive(X[0:int(len(X)/2)])[0] + ((len(X)-int(len(X)/2))/len(X))*mv_recursive(X[int(len(X)/2):len(X)])[0]
        var = mv_recursive(X[0:int(len(X)/2)])[1] + mv_recursive(X[int(len(X)/2):len(X)])[1] + ((int(len(X)/2)*(len(X)-int(len(X)/2)))/len(X))*(mv_recursive(X[0:int(len(X)/2)])[0]-mv_recursive(X[int(len(X)/2):len(X)])[0])*(mv_recursive(X[0:int(len(X)/2)])[0]-mv_recursive(X[int(len(X)/2):len(X)])[0])
    return mu, var

以上来自以下意识:

”在此处输入图像说明”

使用递归和D& c,如何解决一个未知长度(在线平均计算)的整数(在线平均计算)的相同问题?

感谢您提供的任何提示!

A recursive mean computation using D&C is easy when the length of a list is known beforehand.

def mv_recursive (X):
    if len(X)==1:
        mu = X[0]
        var = 0
    else:
        mu = (int(len(X)/2)/len(X))*mv_recursive(X[0:int(len(X)/2)])[0] + ((len(X)-int(len(X)/2))/len(X))*mv_recursive(X[int(len(X)/2):len(X)])[0]
        var = mv_recursive(X[0:int(len(X)/2)])[1] + mv_recursive(X[int(len(X)/2):len(X)])[1] + ((int(len(X)/2)*(len(X)-int(len(X)/2)))/len(X))*(mv_recursive(X[0:int(len(X)/2)])[0]-mv_recursive(X[int(len(X)/2):len(X)])[0])*(mv_recursive(X[0:int(len(X)/2)])[0]-mv_recursive(X[int(len(X)/2):len(X)])[0])
    return mu, var

The above comes from the following realization:

enter image description here
enter image description here

How could one tackle the same problem for a stream of integers of unknown length (online mean calculation), using recursion and D&C?

Thanks for any tips!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文