Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,36 @@
|
|||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.util.Objects;
|
||||
|
||||
public class Calculate_Pi {
|
||||
private static final MathContext con1024 = new MathContext(1024);
|
||||
private static final BigDecimal bigTwo = new BigDecimal(2);
|
||||
private static final BigDecimal bigFour = new BigDecimal(4);
|
||||
|
||||
private static BigDecimal bigSqrt(BigDecimal bd, MathContext con) {
|
||||
BigDecimal x0 = BigDecimal.ZERO;
|
||||
BigDecimal x1 = BigDecimal.valueOf(Math.sqrt(bd.doubleValue()));
|
||||
while (!Objects.equals(x0, x1)) {
|
||||
x0 = x1;
|
||||
x1 = bd.divide(x0, con).add(x0).divide(bigTwo, con);
|
||||
}
|
||||
return x1;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
BigDecimal a = BigDecimal.ONE;
|
||||
BigDecimal g = a.divide(bigSqrt(bigTwo, con1024), con1024);
|
||||
BigDecimal t;
|
||||
BigDecimal sum = BigDecimal.ZERO;
|
||||
BigDecimal pow = bigTwo;
|
||||
while (!Objects.equals(a, g)) {
|
||||
t = a.add(g).divide(bigTwo, con1024);
|
||||
g = bigSqrt(a.multiply(g), con1024);
|
||||
a = t;
|
||||
pow = pow.multiply(bigTwo);
|
||||
sum = sum.add(a.multiply(a).subtract(g.multiply(g)).multiply(pow));
|
||||
}
|
||||
BigDecimal pi = bigFour.multiply(a.multiply(a)).divide(BigDecimal.ONE.subtract(sum), con1024);
|
||||
System.out.println(pi);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue