September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -1,22 +1,22 @@
func bernoulli_number{}; # must be declared before first used
func bernoulli_number{}
func bern_helper(n, k) {
binomial(n, k) * (bernoulli_number(k) / (n - k + 1));
binomial(n, k) * (bernoulli_number(k) / (n - k + 1))
}
func bern_diff(n, k, d) {
n < k ? d : bern_diff(n, k + 1, d - bern_helper(n + 1, k));
n < k ? d : bern_diff(n, k + 1, d - bern_helper(n + 1, k))
}
bernoulli_number = func(n) is cached {
n.is_one && return 1/2;
n.is_odd && return 0;
n.is_one && return 1/2
n.is_odd && return 0
n > 0 ? bern_diff(n - 1, 0, 1) : 1;
n > 0 ? bern_diff(n - 1, 0, 1) : 1
}
range(0, 60).each { |i|
var num = bernoulli_number(i) || next;
printf("B(%2d) = %44s / %s\n", i, num.parts);
for i (0..60) {
var num = bernoulli_number(i) || next
printf("B(%2d) = %44s / %s\n", i, num.nude)
}

View file

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