用3种循环分别计算圆周率(模型自选)。
时间: 2024-04-29 20:24:13 浏览: 81
计算圆周率的c语言代码段-并行计算(中科大讲义)
1. 蒙特卡罗方法
该方法通过随机点的坐标落在圆内或圆外的概率比例来估算圆周率。
```
import random
def pi_monte_carlo(n):
inside = 0
for i in range(n):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
if x**2 + y**2 <= 1:
inside += 1
return 4 * inside / n
print(pi_monte_carlo(1000000))
```
2. 马青公式
该方法基于无穷级数,通过计算级数的前若干项来估算圆周率。
```
def pi_machin(n):
pi = 0
for i in range(n):
pi += ((-1)**i / (2*i + 1)) * (1/5)**(2*i + 1)
pi -= ((-1)**i / (2*i + 1)) * (1/239)**(2*i + 1)
return pi * 4
print(pi_machin(10))
```
3. 布利纽公式
该方法基于连分式,通过计算连分式的前若干项来估算圆周率。
```
def pi_brother(n):
a = [1 for i in range(n)]
b = [0 for i in range(n)]
for i in range(n):
if i == 0:
b[i] = 2
else:
b[i] = 2 * (i+1)
a[i] = b[i] - a[i-1]**2 / a[i]
pi = a[n-1] / b[n-1]
return pi * 2
print(pi_brother(10))
```
阅读全文