feat: add wallis product

This commit is contained in:
2025-07-18 21:26:09 +08:00
parent 9e2d186449
commit 612ae3098b
2 changed files with 33 additions and 6 deletions

View File

@@ -0,0 +1,26 @@
package me.hatter.math;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class WallisProduct {
public static void main(String[] args) {
// 3.1415925750499739534746260502048989270653181072075621931977986489848855062212872415726332946132240849
System.out.println(pi());
}
public static BigDecimal pi() {
BigDecimal p = BigDecimal.valueOf(2);
for (long i = 1; i < 10000000; i++) {
BigDecimal doubleI = BigDecimal.valueOf(i * 2);
p = p.multiply(
doubleI.divide(doubleI.subtract(BigDecimal.ONE), 100, RoundingMode.FLOOR)
).multiply(
doubleI.divide(doubleI.add(BigDecimal.ONE), 100, RoundingMode.FLOOR)
);
p = p.divide(BigDecimal.ONE, 100, RoundingMode.FLOOR);
}
return p;
}
}