PI を計算するライプニッツ法を証明するプログラムを作成しています。
(π/4) = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...
私はこれに対して非常に興味深いアプローチを取りましたが、これを行うためのはるかに簡単な方法があるかどうか疑問に思っています.
私がしたことは、変数j
を分母にしたことです。そして主なアイデアは、カウンターを-3から開始し、絶対値を-5、次に-7、そして絶対値を-9にするというものでした。小さくする方法はあると思いますか?ありがとう :)
(ループを終了するために、教師は絶対差を見つけて、それを < 1e-6 にするように言いました)
public class Leibnitz
{
public static void main(String argv[])
{
double answer = (Math.PI) / 4; //answer
double numTheory = 1; //answer
double j = -3; //counts the Denominator
double piFrac; //extra variable for calc
int i = 0; //counts loop
System.out.print("How many iterations does it take to compute pi this series: ");
while (Math.abs(answer - numTheory) > 1e-6)
{
if (j % 4 == -1) //checks if number should be negative (5,9,... needs to be positive so -5 % 4 = -1, -9 % 4 = -1)
j = Math.abs(j);
piFrac = (1 / j); //fraction of pie
numTheory = numTheory + piFrac; //answer
if (j > 0) //makes counter a negative
j = -j;
j -= 2; //goes down by 2
i++; //counts how many times it goes thru the loop
}
System.out.println(i);
}
}