python圆周率计算

项目场景:

提示:这里简述项目相关背景:
实验课作业


问题描述:

提示:这里描述项目中遇到的问题:
在这里插入图片描述


原因分析:

主要的思想是蒙特卡罗方法。思想:随机向在一个单位正方形和1/4的圆中,抛洒大量的随机种子,然后根据每个点到圆心的距离从而判断该点位于圆内还是位于圆外,然后根据落在圆内的点的数量除以总的随机种子就等于pi/4。随机点数量越大,越充分覆盖整个圆形区域,则得到的pi的数据越精准。这主要是利用离散点值表示图形的面积,通过面积比例来求解pi的值。


解决方案:

代码:

import random
import math
random.seed(123)
num = eval(input())
count = 0
for i in range(1, num+1):
    x, y = random.random(), random.random()
    res = math.sqrt(x**2 + y**2)
    if res <= 1:
        count = count + 1
pi = 4*(count/num)
print("{:.6f}".format(pi))

注:
random.seed()函数:用于指定随着数生产所用算法开始的整数值。如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同,而且设置的seed()值仅一次有效。

猜你喜欢

转载自blog.csdn.net/qq_53144843/article/details/120557263