繁体   English   中英

在我的 Python function 到 plot 直方图中找到错误并返回列表?

[英]Finding the error in my Python function to plot a histogram and return a list?

*指令如下:

plotRandomUniformSum(M, N, nBins)

让我们考虑一下当我们将M个均匀随机数相加时会发生什么。 由于每个随机数可以在01之间,我们预计这个sum将在0M之间,但不知何故,我们希望sum更可能接近middle (M/2)而不是接近ends (0 and M)对于M > 1 首先编写一个 function randomUniformSum(M) ,它将M个介于01之间的均匀随机数相加。 二、写一个function那forms一个列表,通过调用randomUniformSum一共N N times 三、plot 将结果以直方图形式返回并返回列表。 请记住,return 意味着退出 function。 因此,您应该先 plot 的直方图然后返回列表。

binMinbinMax应该使用什么值?

要回答这个问题,请考虑randomUniformSum可能假设的minimummaximum 尝试在每种情况下调用您的 function 四次,其中M = 1, 2, 3, 10 1、2、3、10 设置N = 1000000nBins = 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 字符]9087]”

所有测试都有不同的数字。

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

您没有从plotRandomUniformSum(M, N, nBins) function 返回列表

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)

二、写一个function 即forms 一个N个这样的数字的列表,通过调用randomUniformSum一共N次。

您好,欢迎来到 SO。 对我来说,您似乎不清楚您是否已经形成了一个由N+1元素而不是N组成的列表。 尝试更改for i in range(N+1):for i in range(N):一致。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM