Family Day update

This commit is contained in:
Ingy döt Net 2020-02-17 23:21:07 -08:00
parent aac6731f2c
commit 9ad63ea473
2442 changed files with 39761 additions and 8255 deletions

View file

@ -1,25 +1,11 @@
var BigInteger = require('jsbn').BigInteger;
var bi = function(n, b) { return new BigInteger(n.toString(), b ? b : 10); };
function calcPi() {
var q=bi(1), r=bi(0), t=bi(1), k=bi(1), n=bi(3), l=bi(3);
var one=bi(1), two=bi(2), three=bi(3), four=bi(4), seven=bi(7), ten=bi(10);
while (true) {
if (q.multiply(four).add(r).subtract(t).compareTo(n.multiply(t)) < 0) {
process.stdout.write(n.toString());
nr = (r.subtract(n.multiply(t))).multiply(ten);
n = (q.multiply(three).add(r)).multiply(ten).divide(t).subtract(n.multiply(ten));
q = q.multiply(ten);
r = nr;
} else {
nr = q.shiftLeft(1).add(r).multiply(l);
nn = q.multiply(k).multiply(seven).add(two).add(r.multiply(l)).divide(t.multiply(l));
q = q.multiply(k);
t = t.multiply(l);
l = l.add(two);
k = k.add(one);
n = nn;
r = nr;
}
}
let q = 1n, r = 180n, t = 60n, i = 2n;
for (;;) {
let y = (q*(27n*i-12n)+5n*r)/(5n*t);
let u = 3n*(3n*i+1n)*(3n*i+2n);
r = 10n*u*(q*(5n*i-2n)+r-y*t);
q = 10n*q*i*(2n*i-1n);
t = t*u;
i = i+1n;
process.stdout.write(y.toString());
if (i === 3n) { process.stdout.write('.'); }
}
calcPi();