在我的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)