在我的Python函数中找到绘制直方图并返回列表的错误?

在我的Python函数中找到绘制直方图并返回列表的错误?,python,python-3.x,histogram,Python,Python 3.x,Histogram,*说明如下: plotRandomUniformSum(M, N, nBins) 我们考虑当我们把M个统一的随机数加起来时会发生什么。由于每个随机数可以在0和1之间,我们预计该和将在0和M之间,但不知何故,我们预计,当M>1时,该和更可能接近中间M/2,而不是接近末端0和M。首先编写一个函数randomUniformSumM,将0和1之间的M个均匀随机数相加。其次,编写一个函数,通过调用randomUniformSum总共N次,形成一个由N个这样的数字组成的列表。第三,将结果绘制成直方图并返回

*说明如下:

plotRandomUniformSum(M, N, nBins)
我们考虑当我们把M个统一的随机数加起来时会发生什么。由于每个随机数可以在0和1之间,我们预计该和将在0和M之间,但不知何故,我们预计,当M>1时,该和更可能接近中间M/2,而不是接近末端0和M。首先编写一个函数randomUniformSumM,将0和1之间的M个均匀随机数相加。其次,编写一个函数,通过调用randomUniformSum总共N次,形成一个由N个这样的数字组成的列表。第三,将结果绘制成直方图并返回列表。 记住,return意味着退出函数。因此,您应该首先绘制直方图,然后返回列表

binMin和binMax应该使用什么值

回答这个问题,考虑随机一致性可以假定的最小值和最大值。尝试调用函数四次,每次M=1、2、3、10设置N=1000000和nBins=100。您会注意到,随着M的增加,分布看起来越来越像正态分布或高斯分布。这是中心极限定理的一个例子,这是统计学中一个非常重要的定理,它指出,当你从任何分布中添加越来越多的独立随机变量时,不必是均匀的,总和接近正态分布-非常酷:-*

这就是我到目前为止所做的:

def randomUniformSum(M):
    sum = 0
    for i in range(M):
        sum += random.uniform(0,1)
    return sum

def plotRandomUniformSum(M, N, nBins):
    L = []
    for i in range(N+1):
        x = randomUniformSum(M)
        L.append(x)
    hist.plotHistogram(L, nBins = nBins)
此任务的“我的自动签名器”返回一个错误:

测试失败:无!=[0.793340083761663, 0.8219540423197268, 0[202687 chars]9087]

所有测试的编号都不同

我的错误在哪里?我似乎找不到哪里出了错

其次,编写一个函数,通过调用randomUniformSum总共N次,形成一个由N个这样的数字组成的列表

您好,欢迎来到苏。对我来说,似乎不清楚您是否已形成一个由N+1个元素而不是N组成的列表。请尝试更改rangeN+1中的For i:line和rangeN中的For i:

其次,编写一个函数,通过调用randomUniformSum总共N次,形成一个由N个这样的数字组成的列表


您好,欢迎来到苏。对我来说,似乎不清楚您是否已形成一个由N+1个元素而不是N组成的列表。请尝试更改rangeN+1中的i:line与rangeN中的i:。

您没有从plotRandomUniformSumM,N,nBins函数返回列表


您没有从plotRandomUniformSumM,N,nBins函数返回列表


您好,谢谢您的回复和帮助;我试图改变这一点,但不幸的是,它仍然给出相同的错误消息:嗨,谢谢你的回复和帮助;我试图更改它,但不幸的是,它仍然给出相同的错误消息:您没有从plotRandomUniformSumM,N,nBins函数返回列表您没有从plotRandomUniformSumM,N,nBins函数返回列表
def randomUniformSum(M):
    sum = 0
    for i in range(M):
        sum += random.uniform(0,1)
    return sum

def plotRandomUniformSum(M, N, nBins):
    L = []
    for i in range(N+1):
        x = randomUniformSum(M)
        L.append(x)
    hist.plotHistogram(L, nBins = nBins)
    return L # you missed this out

list_of_random_sums = plotRandomUniformSum(10, 1000000, 100)