DescentWordPreimageCount
The permutations whose descent word is this word.
✓ checked against that system · ! checked, with disagreements (hover a chip)FindStat
St000529via BinaryWord✓DescentWordPreimageCount(word)The permutations whose descent word is this word.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 St000529, the size of the preimage of the descent word map. The word has length N - 1; the count is by inclusion-exclusion over the descents.
Definition
Epsil, as the implementation runs it.
on BinaryWord, over _x
0 if Length(_x) < 1 else Apply((y: list<integer>) => Apply(
(c: list<integer>) => Apply(
(a_init: list<integer>) => Fold(
(a: list<integer>, b) => Apply(
(a_next: list<integer>) => a_next,
Join(a, [Max(Sum(Map(Function((-1) ^
(c[b] -
c[i + 1]) *
a[i + 1] /
Product(Range(1, b - i, 1)), i), Range(0, b - 1, 1))), 0) if y[b] == 1 else 0]),
),
a_init,
Range(1, Length(_x) + 1),
),
[Product(Range(1, Length(_x) + 1, 1))],
)[Length(_x) + 2],
Apply((a_init: list<integer>) => Fold(
(a: list<integer>, b) => Apply(
(a_next: list<integer>) => a_next,
Join(a, [a[Length(a)] + y[b]]),
),
a_init,
Range(1, Length(_x) + 1),
), [0]),
), Join(_x, [1]))Examples
Properties #
About
| Examples | 4 |
|---|---|
| Crosswalk | FindStat |