求解圆周率的方法
1、数学思维:找出公式,利用公式求解
首先给出公式
代码如下:
pi=0 #定义初始pi值
N=100 #设置累加数量
for i in range(N):
pi += 1 / pow (16,i) * (4 / (8 * i + 1)- \ #如果代码一行太长可用“\”换行再次编写
2 / (8 * i + 4) - 1 / ( 8 * i + 5 ) - \
1 / (8 * i + 6))
print("圆周率值为: {}".format(pi))
2、计算思维:抽象一种过程,用计算机自动化求解
代码如下:
#如果忘记了圆周率公式,蒙提卡罗方法是个不错的选择哦
from random import random #导入随机数库
from time import perf_counter #导入时间库,以便于查看运行时间
SPOT = 10000*10000 #随机点数的和
hits = 0.0 #初始化命中点数
start = perf_counter() #开始计时
for i in range(1, SPOT + 1): #使用循环对所有点进行抛撒
x, y = random(), random() #生成两个随即坐标值
dist = pow(x**2 + y**2 , 0.5) #利用距离计算圆内的点数
if dist <= 1.0:
hits = hits + 1
Pi = 4 * (hits / SPOT)
print("圆周率值为: {}".format(Pi))
print("运行时间为: {:.6f}s".format(perf_counter() - start)) #利用差值求时间
下面给出运行结果:我这个值选的忒大了点,跑了好长时间。。。。。。