###圆周率的计算###python

本文介绍了使用Python的蒙特卡罗方法计算圆周率。通过在一个正方形内随机撒点,根据落在1/4圆内的点的比例来估算圆周率,并以123作为随机数种子,根据用户输入的点数生成结果,最终保留小数点后6位进行展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值。
请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。

#Author FPC认清形势抛弃幻想
from random import random, seed
DARTS = eval(input())
seed(123)
hits = 0.0
for i in range(
### 使用 Python 实现圆周率 π 的计算 以下是两种常见的方法用于通过 Python 计算圆周率: #### 方法一:基于莱布尼茨公式 莱布尼茨公式是一种经典的数学级数,可以用来近似计算圆周率。该公式表示如下: \[ \pi = 4 \times (1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + ...) \] 下面是一个完整的 Python 实现代码[^1]: ```python def calculate_pi_leibniz(terms): pi_estimate = 0 sign = 1 for i in range(terms): term = sign / (2 * i + 1) pi_estimate += term sign *= -1 return 4 * pi_estimate # 设置迭代次数以提高精度 number_of_terms = 1_000_000 calculated_pi = calculate_pi_leibniz(number_of_terms) print(f"使用 {number_of_terms} 次项估计得到的圆周率为: {calculated_pi}") ``` 此方法虽然易于理解,但由于其收敛速度较慢,在较少次项的情况下可能无法获得高精度的结果。 #### 方法二:蒙特卡罗模拟法 另一种常用的方法是利用概率统计中的蒙特卡洛算法来估算圆周率。这种方法的核心思想是在单位正方形内随机生成大量点,并判断这些点是否位于单位圆内部。最终可以通过比例关系推导出圆周率的值[^2]。 下面是具体的实现代码: ```python from random import random def estimate_pi_monte_carlo(samples): inside_circle = 0 total_samples = samples for _ in range(total_samples): x, y = random(), random() distance_squared = x ** 2 + y ** 2 if distance_squared <= 1: inside_circle += 1 estimated_pi = 4 * (inside_circle / total_samples) return estimated_pi # 设定采样数量 sample_count = 1_000_000 estimated_value = estimate_pi_monte_carlo(sample_count) print(f"基于 {sample_count} 个样本估计得出的圆周率为: {estimated_value}") ``` 上述两段代码分别展示了如何采用不同的数学原理去逼近真实的圆周率数值。每种方式都有各自的优缺点——前者依赖于无穷序列求和而后者则更多涉及到了随机过程与大数定律的应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值