编程实现根据公式π/4=1-(1/3)+(1/5)-(1/7)...计算π的值
生活随笔
收集整理的這篇文章主要介紹了
编程实现根据公式π/4=1-(1/3)+(1/5)-(1/7)...计算π的值
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如題,這是一個(gè)面試題,根據(jù)公式計(jì)算π的值,我們知道π的值大概是3.1415926,這里我們需要通過如題所示的公式來計(jì)算:
通過公式,我們知道,公式左邊是一個(gè)Pi/4的值,右邊可以看做是一個(gè)不斷累加的和,只不過這個(gè)累加的量,每間隔一個(gè)會(huì)是一個(gè)負(fù)值,如果右邊的值我們看做是n個(gè)數(shù)的累加和,當(dāng)n=1時(shí)是1,當(dāng)n=2時(shí)是1-1/3,當(dāng)n=3時(shí)是1-1/3+1/5,依次類推,我們可以這么來看:
無論當(dāng)前是第幾個(gè)數(shù),他的值就是flag*(1/2*i-1)。根據(jù)這個(gè)思路,我們的程序可以做出如下的設(shè)計(jì):
package com.xxx.algorithm.wh;public class CalculatePI {//根據(jù)公式計(jì)算pi的值// π/4 = 1-1/3+1/5-1/7...public static double pi(int n){int flag = 1;double temp = 1;double sum = 0;for(int i=1;i<=n;i++){temp = 1.0/(2*i-1)*flag;sum = sum+temp;flag = -flag;}return sum*4;}public static void main(String[] args) { double p = pi(1);System.out.println(" n=1 : "+p);p = pi(100);System.out.println(" n=100 : "+p);p = pi(10000);System.out.println("n=10000 : "+p);}}代碼量不是很多,也是很直觀的,就是將分子分母的規(guī)律總結(jié)一下,然后根據(jù)特點(diǎn)求出他們的累加和。
運(yùn)行這個(gè)代碼,打印信息如下:
從打印結(jié)果分析,當(dāng)n的值越大計(jì)算的π的值就越精確。
總結(jié)
以上是生活随笔為你收集整理的编程实现根据公式π/4=1-(1/3)+(1/5)-(1/7)...计算π的值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机监控系统软件设计,计算机监控软件设
- 下一篇: 程序员,不要让自己做兔子(updated