如何使用ArctanIterStrategy BallardIterStrategy WallisIterStrategy LeibnizIterStrategy来计算Π值 这些方法的初始值都是多少 用java展示每一个方法
时间: 2023-12-10 10:38:09 浏览: 115
这些方法都是用迭代计算π值的数学公式,需要给定初始值。
1. ArctanIterStrategy
这个方法使用的公式是:
π/4 = arctan(1/2) + arctan(1/3)
初始值为1,即arctan(1)=1。
Java代码如下:
```java
public static double calculatePiByArctan() {
double pi = 0;
double x = 1;
ArctanIterStrategy arctan = new ArctanIterStrategy();
while (true) {
pi += arctan.getValue(x);
if (arctan.isFinished()) {
break;
}
x = 1.0 / (x + 2);
}
return pi * 4;
}
```
2. BallardIterStrategy
这个方法使用的公式是:
π/2 = (2/1)(2/3)(4/3)(4/5)(6/5)(6/7)...
初始值为2/1,即n=1时的值。
Java代码如下:
```java
public static double calculatePiByBallard() {
double pi = 2;
int n = 1;
BallardIterStrategy ballard = new BallardIterStrategy();
while (true) {
pi *= ballard.getValue(n);
if (ballard.isFinished()) {
break;
}
n++;
}
return pi;
}
```
3. WallisIterStrategy
这个方法使用的公式是:
π/2 = (2/1)(2/3)(4/3)(4/5)(6/5)(6/7)...
初始值为1,即n=0时的值。
Java代码如下:
```java
public static double calculatePiByWallis() {
double pi = 1;
int n = 0;
WallisIterStrategy wallis = new WallisIterStrategy();
while (true) {
pi *= wallis.getValue(n);
if (wallis.isFinished()) {
break;
}
n++;
}
return pi * 2;
}
```
4. LeibnizIterStrategy
这个方法使用的公式是:
π/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...
初始值为1,即n=0时的值。
Java代码如下:
```java
public static double calculatePiByLeibniz() {
double pi = 0;
int n = 0;
LeibnizIterStrategy leibniz = new LeibnizIterStrategy();
while (true) {
pi += leibniz.getValue(n);
if (leibniz.isFinished()) {
break;
}
n++;
}
return pi * 4;
}
```
阅读全文