pylab + random demo

来源:互联网 发布:淘宝网书籍杂志在哪找 编辑:程序博客网 时间:2024/05/20 11:31
#quote from 'introduction to computation and programming using python,# revised edition, MIT'import pylabimport randomdef flipPlot(minExp, maxExp):    """Assumes minExp and maxExp positive integers; minExp < maxExp       Plots results of 2**minExp to 2**maxExp coin flips"""    ratios = []    diffs = []    xAxis = []    for exp in range(minExp, maxExp + 1):        xAxis.append(2**exp)    for numFlips in xAxis:        numHeads = 0        for n in range(numFlips):#a single point on xAxis            if random.random() < 0.5:                numHeads += 1        numTails = numFlips - numHeads        ratios.append(numHeads/float(numTails))        diffs.append(abs(numHeads - numTails))    pylab.title('Difference Between Heads and Tails')    pylab.xlabel('Number of Flips')    pylab.ylabel('Abs(#Heads - #Tails)')    pylab.plot(xAxis, diffs)    pylab.figure()    pylab.title('Heads/Tails Ratios')    pylab.xlabel('Number of Flips')    pylab.ylabel('#Heads/#Tails')    pylab.plot(xAxis, ratios)    pylab.show()    flipPlot(4, 20)


0 0
原创粉丝点击