LongestCatalanFactorSemilength
The semilength of the longest Dyck word in the Catalan factorization.
✓ checked against that system · ! checked, with disagreements (hover a chip)FindStat
St000875via BinaryWord✓LongestCatalanFactorSemilength(word)The semilength of the longest Dyck word in the Catalan factorization.Typed signatures
| Type | Package | Applies |
|---|---|---|
(binary_word) -> number | combinatorics | always |
Details
- Defined over
BinaryWordas an expression in_x, evaluated by compute-engine — the definition IS the implementation. - Takes a
BinaryWordand nothing else — it reads values against their positions, or walks the orbits, so it needs the bijection. Applying it to a bare list is a type error, not a wrong answer. - FindStat's St000875. Every word is (D 0)^l D (1 D)^m with the D Dyck words; the longest D lies between two critical steps, or an end of the word and one.
Definition
Epsil, as the implementation runs it.
on BinaryWord, over _x
0 if Length(_x) < 1 else Apply(
(h: list<integer>) => Apply(
(g: list<integer>) => Max(g[1], g[2]) /
2,
Apply((a_init: list<integer>) => Fold(
(a: list<integer>, b) => Apply(
(a_next: list<integer>) => a_next,
Apply(
(c: integer) => [(1 - c) *
(a[1] + 1), Max(a[2], c * a[1])],
(1 if h[b + 1] <
Min(Map(Function(h[m + 1], m), Range(0, b - 1, 1))) else 0) if _x[b] == 0 else 1 if h[b - 1 +
1] <
Min(Map(Function(h[m + 1], m), Range(b, Length(_x), 1))) else 0,
),
),
a_init,
Range(1, Length(_x)),
), [0, 0]),
),
Apply((a_init: list<integer>) => Fold(
(
a: list<integer>,
b,
) => Apply(
(a_next: list<integer>) => a_next,
Join(a, [a[Length(a)] +
(2 * _x[b] -
1)]),
),
a_init,
Range(1, Length(_x)),
), [0]),
)Examples
Properties #
About
| Examples | 4 |
|---|---|
| Crosswalk | FindStat |