自学Python:π的近似值

作者: 小强聊成长 | 来源:发表于2022-03-16 13:21 被阅读0次

    使用蒙特卡罗法求π的近似值。

    蒙特卡罗方法或称计算机模拟方法,是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战时研制原子弹的“曼哈顿计划”。该计划的主持人之一数学家冯·诺依曼用驰名世界的赌城——摩纳哥的蒙特卡罗来命名这种方法,为它蒙上了一层神秘的色彩。

    蒙特卡罗方法的思路是,在一个单位边长的正方形中,以边长为半径,以一个顶点为圆心,在这个正方形上作四分之一圆。在正方形中随机地投入很多点,使所投入的点落在正方形中每一个位置的机会相等。若点落入四分之一圆内则计数。重复地向正方形中投入足够多的点,用落入四分之一圆内的点数除以总的点数,得到的就是π的四分之一的近似值。

    用python程序来实现蒙特卡罗方法。

    下面直接上代码:

    ########################

    from random import random

    import math

    if __name__ == "__main__":

        dianshu = 10000000  # 落入正方形的总的点数,此数越大,越逼近π的近似值

        luoru = 0.0  # 落入四分之一圆的点数

        for i in range(1, dianshu+1):

            x, y = random(), random()  # 随机生成[0, 1)之间的数

            dist = math.sqrt(x**2+y**2)  # 蒙特卡罗法求解

            if dist <= 1.0:

                luoru = luoru+1

        pai = 4*(luoru/dianshu)  # 计算π的近似值

        print("π的值{}.".format(pai))

    ########################

    执行结果如下:

    π的值3.1424676.

    ________________END______________

    相关文章

      网友评论

        本文标题:自学Python:π的近似值

        本文链接:https://www.haomeiwen.com/subject/uvddlrtx.html