Java黑皮书课后题第5章:**5.25(计算π)使用下面的数列可以近似计算π:4(1-1/3+1/5-1/7+……+(Math.pow(-1, i+1)/(2*i-1))
@[TOC](5.25(计算π)使用下面的数列可以近似计算π:4*(1-1/3+1/5-1/7+……+(Math.pow(-1, i+1)/(2*i-1)))
题目
题目概述
5.25(计算π)使用下面的数列可以近似计算π:4*(1-1/3+1/5-1/7+……+(Math.pow(-1, i+1)/(2*i-1)))
编写程序,显示当i=10000, 20000,……100000时的π值
破题
- 4*(1-1/3+1/5-1/7+……+Math.pow(-1, i+1)/(2i-1)))
=4(1-1/3+1/5-1/7+1/9-……-Math.pow(-1, i+1)/(2i-3)+Math.pow(-1, i+1)/(2i-1))
=4*((1-1/3)+(1/5-1/7)+(1/9-1/11)+……-Math.pow(-1, i+1)/(2i-3)+Math.pow(-1, i+1)/(2i-1))
因为i均为偶数,所以公式最后一个元素符号为负
原式=4*((1-1/3)+(1/5-1/7)+(1/9-1/11)+……+(Math.pow(-1, i+1)/(2i-3)+Math.pow(-1, i+1)/(2i-1)))
=4*(2.0/(1 * 3)+2.0/(5 * 7)+2.0/(9 * 11)+……+2.0/((2 * i-3) * (2 * i-1)))
=8*(1.0/(1 * 3)+1.0/(5 * 7)+1.0/(9 * 11)+……+1.0/((2 * i-3) * (2 * i-1)))
代码
public class Test5_25 {public static void main(String[] args) {double formula = 0;for( int i = 10000; i <= 100000 ; i += 10000 ){formula = 0;for ( int n = 1 ; n <= i / 2; n++ ){formula += 1.0 / ( ( 4 * n - 3 ) * ( 4 * n - 1) );}formula = 8 * formula ;System.out.printf("当i=%d时,结果为%f\n", i, formula);}}
}
输出结果
Java黑皮书课后题第5章:**5.25(计算π)使用下面的数列可以近似计算π:4(1-1/3+1/5-1/7+……+(Math.pow(-1, i+1)/(2*i-1))相关推荐
- Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类
Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...
- Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的
Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...
- Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字
Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...
- Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类
Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...
- Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中
Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...
- Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))
Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...
- Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。
Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...
- Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)
Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...
- Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类
Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...
- Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类
Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...
最新文章
- FDMemTable 数据集
- CentOS7中通过二进制文件与配置环境变量的方式安装Node
- 连表查询使用in_SQL 组合查询
- Jenkins任务失败,发送邮件通知
- python形参中传入两个实参_认识Python函数的两个概念:形参与实参(16)
- 面试官问你B树和B+树,就把这篇文章丢给他
- polycom安卓手机客户端_Spark,安卓上最好用的邮件客户端来了!附App下载
- 洛谷3672:小清新签到题——题解
- 关系抽取之远程监督算法:别再跟我提知识图谱(下篇)
- 万恶的WIN10,已有的VirftualBox虚拟机都不能用了
- python内置对象的实现_Python面向对象——内置对象的功能扩展
- 算法竞赛入门经典训练指南 pdf
- opencv 运动检测 三帧差法
- 计算机中ms-dos什么意思,msdos是什么意思
- 【插值】插值方法原理详解
- 德勤财务机器人正式上岗,工作视频曝光,效率惊人
- python jdict_jdict python中的javascript dict
- 用js计时器写倒计时
- 系统集成项目管理工程师高频考点(第八章)
- 吉信通短信接口(HTTP协议) java