1. 程式人生 > >寫一下萊布尼茨級數

寫一下萊布尼茨級數

背景:看《邏輯的引擎》這本書的時候,看到天才萊布尼茨的發現,本來是對電腦計算速度好奇的,試了下運算時間蠻長,就是了100,效果跟書本不一樣。記錄一下。

萊布尼茨級數:π/4 = 1-1/3+1/5-1/7+1/9…
越趨近極限,就越接近π/4的值。

package com.hmc.testUserAccounts;

/**
Author:meice Huang
Time:2018年10月日下午14:08:28
*/


public class getLeibnizSeries {
	/**
	 * 
	 * 背景:書籍《邏輯的引擎》,看到萊布尼茨級數,就試了一下,結果跟書本不一樣。寫得應該是沒有問題的。
	 *
	 * π/4 = 1-1/3+1/5-1/7+1/9.....
	 * @param num
	 * @return
	 */
	public static double getLeibnizeries(int num ) {
		double m = 0;
		int count =1;
		for(int i=2;i<=num;i++) {
			double x =0;
			if(isOdd(i)){
				//int count =1;
				if(isOdd(count)) {
					x=-i;
					if(i==3) {
						m= m+(1+(1/x));//0-1/3+1/5
					}
					m= m+((1/x));
					System.out.println("m "+m+"  "+(1/x));
				}else {
					x=i;
					m= m+(1/x);
				}
				count++;
			}
			
		}
		return m;
	}
	public  static boolean isOdd(int a ) {
		boolean b;
		if(a %2 ==0){
			b = false;
		}else{
			b = true;
		}
		return b;
	}
	public static void main(String[] args) {
		System.out.println("最終結果:"+getLeibnizeries(100));//100次的結果是:0.4470653298144195
	}
	
}

對比一下書本結果:

在這裡插入圖片描述

總結:我只是想冒個泡泡。

歡迎評論交流。