Data update

This commit is contained in:
Ingy döt Net 2024-10-16 18:07:41 -07:00
parent 81fd053722
commit 52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions

View file

@ -0,0 +1 @@
Vec((1-sqrt(1 - 4*x))/(2*x)+O(x^16))

View file

@ -0,0 +1,25 @@
##
function binom(n, k: integer): int64;
begin
result := 1;
for var i := 1 to k do
result := result * (n - i + 1) div i
end;
function catalan1(n: integer) := binom(2 * n, n) div (n + 1);
function catalan2(n: integer): integer;
begin
if n = 0 then begin result := 1; exit end;
for var i := 0 to n - 1 do
result += catalan2(i) * catalan2(n - 1 - i)
end;
function catalan3(n: integer): integer;
begin
if n > 0 then result := 2 * (2 * n - 1) * catalan3(n - 1) div (1 + n)
else result := 1;
end;
for var i := 0 to 15 do
writeln(i:2, catalan1(i):9, catalan2(i):9, catalan3(i):9);

View file

@ -0,0 +1,33 @@
struct Catalan {
catalans: Vec<i64>,
n: i64,
}
impl Default for Catalan {
fn default() -> Self {
Catalan {
catalans: vec![1],
n: 1,
}
}
}
impl Iterator for Catalan {
type Item = i64;
fn next(&mut self) -> Option<Self::Item> {
let c = *self.catalans.last().unwrap();
let next = 2 * c * (2 * self.n - 1) / (self.n + 1);
self.catalans.push(next);
self.n += 1;
Some(next)
}
}
fn main() {
for (i, catalan) in Catalan::default().take(15).enumerate() {
println!("c_n({}) = {}", i, catalan);
}
}