单位圆的面积为π,因此可以通过求单位圆面积的近似值来求π的近似值
一个学妹问的一道c语言题目
标题单位圆的面积为π,因此可以通过求单位圆面积的近似值来求π的近似值。考虑将单位圆沿x轴分成n份,从而求得n个梯形的面积和作为单位圆的一个近似值;
再将单位圆分成2n份,从而求得2n个梯形的面积和作为单位圆的另一近似值。此过程可以一直持续下去,将单位圆分成4n份、8n份等等,当二次求得的近似值很接近时,可认为得到单位圆面积较精确的近似值。将下列程序补充完整,利用上述方法求π的近似值
#include <math.h>
#include <iostream>
using namespace std;
int main(){
const double epsilon = 1E-4;//这里我特意将极限写成负四次方,不然执行时间太长
int n = 2;
double dist_s = 1.0;//默认1
double pi = 0.0;
for (n; epsilon < dist_s; n ++ )
{ double x1 = 2.0/n;//高cout << "x1 = " << x1 << endl;double x2 = 2.0/(2*n);//高cout << fixed<<"x2 = " << x2 << endl;double s1 = 0.0;//x/n高度梯形的面积double s2 = 0.0;//x/2n高度梯形的面积cout << "n = " << n << endl;for (double i = -1;i < 1;i = i + x1){double h1 = 2*sqrt(1-pow(i,2));//上底double h2 = 2*sqrt(1-pow(i + x1,2));//下底s1 += (h1+h2)*x1/2.0;}cout << "s1 = " << s1 << endl;for (double i = -1;i < 1;i = i + x2){double h1 = 2*sqrt(1-pow(i,2));//上底double h2 = 2*sqrt(1-pow(i + x2,2));//下底s2 += (h1+h2)*x2/2.0;}cout << "s2 = " << s2 << endl;dist_s = fabs(s1 - s2);cout <<"dist =" << dist_s << endl;
}
cout << "pi = " << dist_s << endl;
}
codeblock中运行
单位圆的面积为π,因此可以通过求单位圆面积的近似值来求π的近似值相关推荐
- python用海伦公式求面积_用带参数的宏定义,通过海伦公式求三角形的面积
要求: 海伦公式: ,其中 ,a,b,c为三角形的三个边.定义两个带参数的宏,一个用来求p,另一个用来求s 题目分析: 首先,题目要求是通过输入三角形的三条边,输出三角形的面积.因为不是任意的三条边都 ...
- C语言用矩形法求定积分的通用函数,分别求 sinx, cosx,e^x
要求: 写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x . 分析: 矩形法,学过高等数学就知道化曲为直的思想.将定积分化为多个函数连续的和.基本思想是将区间[a,b]化成 ...
- 利用计算机求锐角三角函数值,利用计算器求三角函数值.doc
全品中考网 z 全品中考网 010 全品中考网邮箱:canpointzk@188.com 第 PAGE 3 页 共 NUMPAGES 3 页 28.1锐角三角函数教案四--利用计算器求三角函数值 教学 ...
- python函数编程求三个数的最小公倍数_Python求三个数的最小公倍数
题目 求三个数的最小公倍数 思路 首先求两个数的最小公倍数,再求这个最小公倍数与第三个数的最小公倍数就是最终结果 有两种方案求两个数的最小公倍数 1. 分解质因数,也是短除法(在程序上差别不大) 循环 ...
- python练习题(python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数” 等)
实验环境:python2.7 题目1:python之"求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数" 程序: import math def factorial(n): ...
- tensorflow with求导_3.4tensorflow2.x自动求导原理函数详解
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: 1.1 tensorflow2.x自动求导 1.1.1 自动求导GradientTape类 GradientT ...
- 嵌入式 ARM 汇编编程例题(二维数组按规律求和,求两数 gcd / lcm,求数组 min / max,字符串复制,排序)
文章目录 0x00. 整数加减乘除 0x01. 一维数组按某种规律求和 0x01.1 求 1~100 之和 0x01.2. 求一维数组的和 0x01.2. 求一维数组的所有奇数的和 0x02. 二维数 ...
- Database之SQL:SQL之over partition by开窗函数的简介、使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略
Database之SQL:SQL之over partition by开窗函数的简介.使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略 目录 over part ...
- 扩展欧几里得算法求逆元_从辗转相除法到求逆元,数论算法初体验
今天是算法和数据结构专题的第22篇文章,我们一起来聊聊辗转相除法. 辗转相除法又名欧几里得算法,是求最大公约数的一种算法,英文缩写是gcd.所以如果你在大牛的代码或者是书上看到gcd,要注意,这不是某 ...
- python求50的阶乘_python中求阶乘
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我如何去计算python中的一个整数的阶乘?... 写一个猜数字的游戏,预先设定 ...
最新文章
- 使用SSH和Nginx做内网HTTP映射
- eclipse 的快捷键
- CentOS下php安装mcrypt扩展
- ssh密钥分发与ansible
- vsftpd配置文件丢失
- 怎样对ListView的项进行排序
- 使用tensorflow object_detection API完成目标检测(object_detection API使用)
- 从12306网站新验证码看Web验证码设计与破解
- java计算机毕业设计服装连锁店后台管理系统MyBatis+系统+LW文档+源码+调试部署
- 【怀念】清明遥祭外婆
- 解决方案:ubuntu14.04安装后无法引导win7;Realtek-RTL8723BE无线网卡驱动的安装
- 好佳居软装十大品牌 软装可以提升格调
- mac外接键盘HOME,END键问题
- 【Python】PyCharm热加载,调试时,修改运行时代码无需重新启动程序即可更新所做的修改
- Invalid bound statement (not found): com.xx.dao.TypeMapper.selectAll
- linux usb 驱动总线(三)
- 【人工智能】关于人类大脑模型的一些数学公式
- 2017-12-9框架
- C89 和 C99 标准比较
- gitee码云的使用