LittleSchroderNumbers
The little Schröder numbers (super-Catalan numbers) as a lazy indexed collection.
OEIS
A001003LittleSchroderNumbers, counting dissections of a convex polygon, an infinite indexed collection.Details
- A lazy indexed collection: , and unranks term via , , bigint throughout -- .
- OEIS A001003, starting exactly at its offset-0 term: .
- Membership goes through Element: is true, is false. See SchroederNumbers -- is exactly half 's term for .
Definition
Epsil, as the implementation runs it.
count()
PositiveInfinityunrank(_r)
1 if _r == 0 else Fold(
Function(sm_a + Binomial(_r + sm_k, _r - sm_k) * (Binomial(2sm_k, sm_k) -
(0 if 2sm_k <
sm_k + 1 else Binomial(2sm_k, sm_k + 1))), sm_a, sm_k),
0,
Range(0, _r, 1),
) / 2rank(_x)
Apply(
(sq_at: integer) => (0 if _x == (1 if 0 == 0 else Fold(
Function(sm_a + Binomial(0 + sm_k, 0 - sm_k) *
(Binomial(2sm_k, sm_k) -
(0 if 2sm_k <
sm_k + 1 else Binomial(2sm_k, sm_k + 1))), sm_a, sm_k),
0,
Range(0, 0, 1),
) / 2) else sq_at) if (1 if sq_at == 0 else Fold(
Function(sm_a +
Binomial(sq_at + sm_k, sq_at - sm_k) *
(Binomial(2sm_k, sm_k) -
(0 if 2sm_k <
sm_k + 1 else Binomial(2sm_k, sm_k + 1))), sm_a, sm_k),
0,
Range(0, sq_at, 1),
) /
2) ==
_x else -1,
Fold(
Function(sq_at + 2 ^ sq_b if (1 if sq_at + 2 ^ sq_b == 0 else Fold(
Function(sm_a +
Binomial(sq_at +
2 ^ sq_b +
sm_k, sq_at +
2 ^ sq_b -
sm_k) *
(Binomial(2sm_k, sm_k) -
(0 if 2sm_k <
sm_k + 1 else Binomial(2sm_k, sm_k + 1))), sm_a, sm_k),
0,
Range(0, sq_at +
2 ^ sq_b, 1),
) /
2) <=
_x else sq_at, sq_at, sq_b),
0,
Range(Floor(Log(Floor(Log(_x, 2)) + 2, 2)) + 1, 0, -1),
),
) if True else -1valid(_x)
Apply(
(sq_at: integer) => (1 if sq_at == 0 else Fold(
Function(sm_a + Binomial(
sq_at + sm_k,
sq_at - sm_k,
) *
(Binomial(2sm_k, sm_k) -
(0 if 2sm_k <
sm_k +
1 else Binomial(2sm_k, sm_k + 1))), sm_a, sm_k),
0,
Range(0, sq_at, 1),
) / 2) == _x,
Fold(
Function(sq_at + 2 ^ sq_b if (1 if sq_at + 2 ^ sq_b == 0 else Fold(
Function(sm_a +
Binomial(sq_at +
2 ^ sq_b +
sm_k, sq_at +
2 ^ sq_b -
sm_k) *
(Binomial(2sm_k, sm_k) -
(0 if 2sm_k <
sm_k + 1 else Binomial(2sm_k, sm_k + 1))), sm_a, sm_k),
0,
Range(0, sq_at +
2 ^ sq_b, 1),
) /
2) <=
_x else sq_at, sq_at, sq_b),
0,
Range(Floor(Log(Floor(Log(_x, 2)) + 2, 2)) + 1, 0, -1),
),
) if True && _x >= 1 else FalseEnumeration
Examples
1 more kept as data, checked against the oraclesAbout
| Examples | 1 |
|---|---|
| Crosswalk | OEIS |
See also: Count, At, Element, SchroederNumbers, CatalanNumbers