Advertisement
Guest User

pblv2018

a guest
Jan 23rd, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.21 KB | None | 0 0
  1. import java.math.BigDecimal;
  2. import java.math.MathContext;
  3. import java.math.RoundingMode;
  4.  
  5. public class Chudnovski {
  6.  
  7.     static final int LIMIT = 2;
  8.  
  9.     public static void main(String[] args) {
  10.  
  11.         MathContext mc = new MathContext(5000, RoundingMode.HALF_UP);
  12.  
  13.         BigDecimal sum = new BigDecimal(0).setScale(50, RoundingMode.HALF_UP);
  14.  
  15.         for (int k = 0; k < LIMIT; k++) {
  16.             BigDecimal dividend = new BigDecimal(Math.pow(-1, k) * faculty(6 * k) * (545140134 * k + 13591409))
  17.                     .setScale(50, RoundingMode.HALF_UP);
  18.             BigDecimal divisor = new BigDecimal(Math.pow(faculty(k), 3) * faculty(3 * k) * Math.pow(640320, 3 * k))
  19.                     .setScale(50, RoundingMode.HALF_UP);
  20.  
  21.             BigDecimal increment = (dividend.divide(divisor, mc)).setScale(50, RoundingMode.HALF_UP);
  22.             System.out.println("inc: " + increment);
  23.  
  24.             sum = sum.add(increment).setScale(50, RoundingMode.HALF_UP);
  25.             System.out.println("sum: " + sum);
  26.         }
  27.  
  28.         BigDecimal pi = new BigDecimal(426880 * Math.sqrt(10005)).divide(sum, mc).setScale(50, RoundingMode.HALF_UP);
  29.  
  30.         System.out.println(pi);
  31.         System.out.println(Math.PI);
  32.  
  33.     }
  34.  
  35.     private static long faculty(int i) {
  36.         if (i <= 1) {
  37.             return 1L;
  38.         } else {
  39.             return i * faculty(i - 1);
  40.         }
  41.     }
  42.  
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement