用Python计算圆周率

发布时间 2023-11-14 21:46:40作者: 南柯e梦c

算法:采用蒙特卡洛模拟,其基本思想是,在一个正方形内部画一个圆,然后随机生成大量的点,计算落在圆内的点的数量与总点数的比例,最后通过比例估算π的值

代码:


import random
import math

def estimate_pi(total_points):
inside_circle = 0

for _ in range(total_points):
x = random.uniform(0, 1)
y = random.uniform(0, 1)

distance = math.sqrt(x**2 + y**2)

if distance <= 1:
inside_circle += 1

# 计算进度并显示进度条
progress = (_ + 1) / total_points
bar_length = 50
block = int(round(bar_length * progress))
progress_str = "[" + "*" * block + " " * (bar_length - block) + "]"
print(f"\r{progress_str} {progress*100:.2f}%", end="")

pi_estimate = (inside_circle / total_points) * 4
return pi_estimate

# 设置总点数
total_points = 10000

# 估算π的值
pi_value = estimate_pi(total_points)

# 打印结果
print(f"\n估算的π值为: {pi_value}")