用格雷戈里公式求π的近似值(含有python,C,C++).pdf
格雷戈里-莱布尼茨公式是数学中一个经典的无穷级数,用于近似计算圆周率π。这个公式由17世纪的数学家詹姆斯·格雷戈里和戈特弗里德·莱布尼茨独立发现,表达式如下: \[ \pi = 4 \sum_{n=0}^{\infty} \frac{(-1)^n}{2n+1} = 4 \left( \frac{1}{1} - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \cdots \right) \] 这个公式通过交替正负项的级数和来逐渐逼近π的值。在实际编程中,我们通常会设定一个误差阈值,比如10的-6次方,当连续两项的差的绝对值小于这个阈值时停止计算。以下是使用Python、C语言和C++实现该公式的代码示例。 ### Python 实现 ```python t = 1.0 pi = 0 n = 1.0 s = 1 while abs(t) >= 1e-6: pi = pi + t n += 2.0 s = -s t = s / n pi = pi * 4 print("pi={}".format(pi)) ``` 在这个Python程序中,我们初始化`t`为1.0,`pi`为0,`n`为1.0,`s`为1。然后在循环中,我们不断更新π的近似值,直到`t`的绝对值小于10的-6次方。每次迭代,我们增加`n`的值,改变`s`的符号,然后更新`t`为`s`除以`n`的新值。最后乘以4得到π的近似值。 ### C 语言实现 ```c #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int s; float n, t, pi; t = 1.0; pi = 0; n = 1.0; s = 1; while (fabs(t) >= 1e-6) { pi = pi + t; n += 2.0; s = -s; t = s / n; } pi = pi * 4; printf("pi=%f\n", pi); } ``` C语言版本与Python类似,但需要注意类型转换和使用`fabs`函数处理浮点数的绝对值。 ### C++ 实现 C++有两种不同的实现方式,一种是基于原始C风格的实现,类似于C语言版本,另一种是使用C++的`iostream`库进行输入输出。 **C风格的C++实现** ```cpp #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int s; float n, t, pi; t = 1.0; pi = 0; n = 1.0; s = 1; while (fabs(t) >= 1e-6) { pi = pi + t; n += 2.0; s = -s; t = s / n; } pi = pi * 4; printf("pi=%f\n", pi); } ``` **C++ iostream 库实现** ```cpp #include <iostream> int main() { int Operator = 1; double x, sum = 0; for (int i = 1; 1.0 / i > 1e-6; i += 2, Operator *= -1) { x = Operator * 1.0 / i; sum += x; } std::cout << sum * 4 << std::endl; return 0; } ``` 在这个C++版本中,我们使用了C++的`iostream`库来处理输入输出,`for`循环取代了`while`循环,并且没有使用中间变量`s`。同样,当连续项的分母大于10的-6次方时,计算停止。 以上三个程序都是利用格雷戈里-莱布尼茨公式计算π的近似值,根据设定的精度阈值,可以得到不同精度的结果。在实际应用中,还可以优化这些代码,例如使用递归或其他数值方法来提高效率。
- 粉丝: 2505
- 资源: 5734
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HtmlMate标签使用详解中文最新版本
- ATM机旁危险物品检测数据集VOC+YOLO格式1251张5类别.zip
- 网页优化meta标签使用方法及规则中文最新版本
- 网页万能复制 浏览器插件
- IMG_20241123_093226.jpg
- JavaScript的表白代码项目源码.zip
- springboot vue3前后端分离开发入门介绍,分享给有需要的人,仅供参考
- 全国297个地级市城市辖区数据1990-2022年末实有公共汽车出租车数人均城市道路建成区绿地面积供水供气总量医院卫生机构数医生人数GDP第一二三产业增加值分行业从业人员水资源农产品产量利用外资
- Python客流量时间序列预测模型.zip
- 故障预测-灰色预测模型C++源码.zip