@[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时的π值

破题

  1. 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))相关推荐

  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 ...

  2. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

  3. 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 ...

  4. Java黑皮书课后题第10章:*10.13(几何:MyRectangle2D类)定义MyRectangle2D类

    Java黑皮书课后题第10章:10.3 题目 程序 代码 Test13.java Test13_MyRectangle2D.java 运行 UML 题目 程序 Test13.java:测试程序 Tes ...

  5. Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中

    Java黑皮书课后题第10章:10.2(BMI类)将下面的新构造方法加入BMI类中 题目 程序说明 题目槽点 代码:Test2_BMI.java 运行实例 题目 程序说明 Test2_BMI.java ...

  6. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

  7. Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。

    Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...

  8. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  9. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类

    Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...

  10. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

最新文章

  1. FDMemTable 数据集
  2. CentOS7中通过二进制文件与配置环境变量的方式安装Node
  3. 连表查询使用in_SQL 组合查询
  4. Jenkins任务失败,发送邮件通知
  5. python形参中传入两个实参_认识Python函数的两个概念:形参与实参(16)
  6. 面试官问你B树和B+树,就把这篇文章丢给他
  7. polycom安卓手机客户端_Spark,安卓上最好用的邮件客户端来了!附App下载
  8. 洛谷3672:小清新签到题——题解
  9. 关系抽取之远程监督算法:别再跟我提知识图谱(下篇)
  10. 万恶的WIN10,已有的VirftualBox虚拟机都不能用了
  11. python内置对象的实现_Python面向对象——内置对象的功能扩展
  12. 算法竞赛入门经典训练指南 pdf
  13. opencv 运动检测 三帧差法
  14. 计算机中ms-dos什么意思,msdos是什么意思
  15. 【插值】插值方法原理详解
  16. 德勤财务机器人正式上岗,工作视频曝光,效率惊人
  17. python jdict_jdict python中的javascript dict
  18. 用js计时器写倒计时
  19. 系统集成项目管理工程师高频考点(第八章)
  20. 吉信通短信接口(HTTP协议) java

热门文章

  1. vasp软件_量子力学分子动力学软件包-VASP
  2. Docker容器(配置+镜像建立及优化+镜像加速器制作)
  3. java中的类与对象(浅谈)
  4. 拔得头筹 | 阿里云混合云荣膺IPv6最佳实践奖
  5. AIRec个性化推荐召回模型调参实战
  6. 哈啰在分布式消息治理和微服务治理中的实践
  7. 定位Flutter内存问题很难么?
  8. linux覆盖和追加
  9. shell 编程 变量
  10. 洛谷1231 教辅的组成