
1条回答 默认 最新
关注关于高尔顿钉板,网上有很多,我就不班门弄斧了。简单说,1层钉板有2个输出,2层钉板有3个输出,要设计m个容器排成一列的高尔顿钉板,就得有m-1层钉板。只要理解了高尔顿钉板的原理,写代码很容易。下面的代码,设计了一个高尔顿钉板,可以返回m个容器n次实验的结果。
>>> import random >>> def galton(m, n): result = [0 for i in range(m)] for i in range(n): pos = 0 for j in range(1, m): if random.random() > 0.5: pos += 1 result[pos] += 1 return result >>> galton(9, 100) [1, 4, 7, 21, 29, 22, 10, 4, 2]配合matplotlob,可以绘制出近似的正态分布曲线。
>>> import matplotlib.pyplot as plt >>> plt.plot(galton(9, 100)) [<matplotlib.lines.Line2D object at 0x0000020937DF3CC8>] >>> plt.show()
解决 无用评论 打赏 举报