Java黑皮书课后题第5章:**5.25(计算π)使用下面的数列可以近似计算π:4(1-1/3+1/5-1/7+……+(Math.pow(-1, i+1)/(2*i-1))
生活随笔
收集整理的這篇文章主要介紹了
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+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黑皮书课后题第5章:*5.24(
- 下一篇: Java黑皮书课后题第5章:5.26(计