Skip to content

DescentWordPreimageCount ​

The permutations whose descent word is this word.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt000529via BinaryWord✓
DescentWordPreimageCount(word)The permutations whose descent word is this word.
Typed signatures
TypePackageApplies
(binary_word) -> numbercombinatoricsalways

Domain: Binary word statistics

Details
  • Defined over BinaryWord as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a BinaryWord and 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

Basic #

the word 110100111110100111

live ↗
InDescentWordPreimageCount(BinaryWord⁡([1,1,0,1,0,0,1,1,1]))\mathrm{DescentWordPreimageCount}({\operatorname{BinaryWord}}([1, 1, 0, 1, 0, 0, 1, 1, 1]))Out5 2015\,201
Properties #

FindStat's value for 0

live ↗
InCombinatorialStat(BinaryWord⁡([0]),DescentWordPreimageCount)\mathrm{CombinatorialStat}({\operatorname{BinaryWord}}([0]), \text{DescentWordPreimageCount})Out11

Known value · FindStat St000529

FindStat's value for 1

live ↗
InCombinatorialStat(BinaryWord⁡([1]),DescentWordPreimageCount)\mathrm{CombinatorialStat}({\operatorname{BinaryWord}}([1]), \text{DescentWordPreimageCount})Out11

Known value · FindStat St000529

FindStat's value for 00

live ↗
InCombinatorialStat(BinaryWord⁡([0,0]),DescentWordPreimageCount)\mathrm{CombinatorialStat}({\operatorname{BinaryWord}}([0, 0]), \text{DescentWordPreimageCount})Out11

Known value · FindStat St000529

About
Examples4
CrosswalkFindStat