Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1 @@
say bernoulli(42).as_frac #=> 1520097643918070802691/1806

View file

@ -0,0 +1,14 @@
func bernoulli_number(n) is cached {
n.is_one && return 1/2
n.is_odd && return 0
1 - sum(^n, {|k|
binomial(n,k) * __FUNC__(k) / (n - k + 1)
})
}
for n in (0..60) {
var Bn = bernoulli_number(n) || next
printf("B(%2d) = %44s / %s\n", n, Bn.nude)
}

View file

@ -0,0 +1,9 @@
func ramanujan_bernoulli_number(n) is cached {
return 1/2 if n.is_one
return 0 if n.is_odd
((n%6 == 4 ? -1/2 : 1) * (n+3)/3 - sum(1 .. (n - n%6)/6, {|k|
binomial(n+3, n - 6*k) * __FUNC__(n - 6*k)
})) / binomial(n+3, n)
}

View file

@ -0,0 +1,15 @@
func bernoulli_number_from_zeta(n) {
n.is_zero && return 1
n.is_one && return 1/2
n.is_odd && return 0
var log2B = (log(4*Num.tau*n)/2 + n*log(n) - n*log(Num.tau) - n)/log(2)
local Num!PREC = *(int(n + log2B) + (n <= 90 ? 18 : 0))
var K = 2*(n! / Num.tau**n)
var d = n.divisors.grep {|k| is_prime(k+1) }.prod {|k| k+1 }
var z = ceil((K*d).root(n-1)).primes.prod {|p| 1 - p.float**(-n) }
(-1)**(n/2 + 1) * int(ceil(d*K / z)) / d
}

View file

@ -0,0 +1,13 @@
func bernoulli_print {
var a = []
for m in (0..60) {
a << 1/(m+1)
for j in (1..m -> flip) {
(a[j-1] -= a[j]) *= j
}
a[0] || next
printf("B(%2d) = %44s / %s\n", m, a[0].nude)
}
}
 
bernoulli_print()