【Python】python之π的计算

发布时间:2019-09-10 08:47:24编辑:auto阅读(2047)

    用IPO模式分析问题如下:
    1.输入:抛点的数量。
    2.处理:对于每个抛洒点,计算点到圆心的距 离,通过距离盘点该点在 圆内或圆外,统计在圆内点的数量。
    3.输出:π值

    代码如下

    from random import random
    from math import  sqrt
    from time import clock  #计算程序运行时间
    DARTS=1200   #抛洒点的个数
    #DARTS=5000
    #DARTS=20000
    #DARTS=1000000
    hists=0    #抛洒点在1/4(半径为1)圆内点的个数
    clock()
    for i in range(1,DARTS):
        x,y=random(),random()
        dict=sqrt(x**2+y**2)
        if dict<=1.0:
            hists=hists+1    #随机设点,若抛洒点在1/4圆内,则dice+1
    pi=4*(hists/DARTS)
    print("PI的值是 %s" %pi)
    print("程序运行的时间是 %-5.5ss" %clock())
    

    当抛洒点DARTS=1200时:
    这里写图片描述
    可见π的值不够精确!

    当抛洒点DARTS=5000时:
    这里写图片描述

    当抛洒点DARTS=20000:
    这里写图片描述

    当抛洒点DARTS=1000000:
    这里写图片描述

    我们得出结论:随着抛洒点的增多,π值的结果更精确,但是运行的时间更长!

    这里写图片描述

关键字