def f(n):
return (2*n)**2/((2*n-1)*(2*n+1))
pi = 2
for i in range(1000):
pi *= f(i + 1)
print(pi)
3.140807746030402
需要的话可以后台私信我666
Python开发环境安装教程
Python400集自学视频
软件开发常用词汇
Python学习路线图
3000多本Python电子书
以上就是我的分享,如果有什么不足之处请指出,感谢观看。
这里提供两种方法求解圆周率。
方法一:利用蒙特卡罗方法
步骤如下:
准备工作:在一个单位边长的正方形内接一个半径为1的圆,圆心与正方形中心重合,把它视为由(0,0)到(1,1)的一象限内的圆,而整个正方形相当于该象限内的矩形。
产生随机点:用垂直于x轴的直线将该正方形分成两个部分,在其内部均匀地随机产生n个点。
确认点的位置:将这n个点的x,y分别当作圆的左上角方块(0,0)至右下角方块(1,1)内一定位置的坐标来测定其是否在圆内。
计算统计结果:用圆内的点数与总点数的比值π/4的值近似等于在图形界面内的面积比,即π/4 ≈ 圆内点个数/n。这样π的估计值就求得。
代码如下:
import random
def Pi(n): m = 0 # 计算圆内点数 for _ in range(n): x = random.uniform(0,1) y = random.uniform(0,1) if x2 + y2 < 1: # 判断是否在圆内 m += 1 return 4 * m / n # 计算Pi的值
print(Pi(10000)) # n为点数,可以根据准确度进行调整
方法二:利用Wallis公式
步骤如下:
def Wallis(n): s = 1 for i in range(1,n+1): t = 2 * i s *= t * t / (t * t - 1) return s * 2
print(Wallis(10000))
以上是两种常见的求解圆周率的方法,选择哪种方法主要取决于具体的情况,以及对时间和空间的要求。