验证正弦函数是否符合中心极限定理

中心极限定理是指:每次从这些总体中随机抽取 n 个抽样,一共抽 m 次。 然后把这 m 组抽样分别求出平均值, 这些平均值的分布接近正态分布。

代码如下:

import random, math, matplotlib.pyplot as plt, seaborn

count = 1000000

def getSinDataList():
    minV, maxV = -2*500*math.pi, 2*500*math.pi
    datalist = []
    for i in range(count):
        datalist.append(math.sin(minV + (maxV-minV)*i/count))
    return datalist
def getRandom():
    return int(random.uniform(0,count-1))

def getOneAverage(sinDatalist,n):    
    result = 0
    for i in range(n):
        result += sinDatalist[getRandom()]
    return result / n

def getMAvaerage(m,n):
    sinDatalist = getSinDataList()
    datalist = []
    for i in range(m):
        a = getOneAverage(sinDatalist,n)
        datalist.append(a)
    return datalist

if __name__ == "__main__":
    while True:
        print("please input two integers, m and n:")
        m, n = input().split()
        m, n = int(m), int(n)

        datalist = getMAvaerage(m,n)

        seaborn.violinplot(datalist)
        plt.title(("m=%d,n=%d")%(m,n))
        plt.show()

 

运行效果如图:

 

 

import random, math, matplotlib.pyplot as plt, seaborn

count = 1000000

def getSinDataList():
    minV, maxV = -2*500*math.pi, 2*500*math.pi
    datalist = []
    for i in range(count):
        datalist.append(math.sin(minV + (maxV-minV)*i/count))
    return datalist
def getRandom():
    return int(random.uniform(0,count-1))

def getOneAverage(sinDatalist,n):    
    result = 0
    for i in range(n):
        result += sinDatalist[getRandom()]
    return result / n

def getMAvaerage(m,n):
    sinDatalist = getSinDataList()
    datalist = []
    for i in range(m):
        a = getOneAverage(sinDatalist,n)
        datalist.append(a)
    return datalist

if __name__ == "__main__":
    while True:
        print("please input two integers, m and n:")
        m, n = input().split()
        m, n = int(m)int(n)

        datalist = getMAvaerage(m,n)

        seaborn.violinplot(datalist)
        plt.title(("m=%d,n=%d")%(m,n))
        plt.show()
posted @ 2020-03-27 11:14  liuyong0076  阅读(299)  评论(0编辑  收藏  举报