Skip to content

UpDownRuns ​

Maximal monotone runs, with p(1) counted alone when it is a descent.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt000638via Permutation✓
UpDownRuns(p)Maximal monotone runs, with p(1) counted alone when it is a descent.
Typed signatures
TypePackageApplies
(list<integer> | permutation) -> numbercombinatoricsalways

Domain: Permutation statistics

Details
  • Defined over Permutation as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a Permutation, and also a bare list of integers: this reading compares entries with each other rather than with their positions, so it stands on any sequence.

Definition

Epsil, as the implementation runs it.

on Permutation, over _x

0 if Length(_x) < 1 else 1 if Length(_x) < 2 else (0 if Length(_x) < 3 else Apply((w: list<integer>) => Count(Filter(
                                                                                                                      Range(2, Length(w) - 1),
                                                                                                                      Function(w[i - 1] <
                                                                                                                               w[i] &&
                                                                                                                               w[i] >
                                                                                                                               w[i + 1], i),
                                                                                                                    )), _x) +
                                                                            Apply(
                                                                                   (w: list<integer>) => Count(Filter(
                                                                                                                       Range(2, Length(w) - 1),
                                                                                                                       Function(w[i - 1] <
                                                                                                                                w[i] &&
                                                                                                                                w[i] >
                                                                                                                                w[i + 1], i),
                                                                                                                     )),
                                                                                   Map(
                                                                                        Function(Length(_x) + 1 -
                                                                                                 _x[i], i),
                                                                                        Range(1, Length(_x)),
                                                                                      ),
                                                                                 )) +
                                                  2 if _x[1] > _x[2] else (0 if Length(_x) <
                                                                               3 else Apply((w: list<integer>) => Count(Filter(
                                                                                                                               Range(2, Length(w) - 1),
                                                                                                                               Function(w[i - 1] <
                                                                                                                                        w[i] &&
                                                                                                                                        w[i] >
                                                                                                                                        w[i + 1], i),
                                                                                                                             )), _x) +
                                                                                     Apply(
                                                                                            (w: list<integer>) => Count(Filter(
                                                                                                                                Range(2, Length(w) - 1),
                                                                                                                                Function(w[i - 1] <
                                                                                                                                         w[i] &&
                                                                                                                                         w[i] >
                                                                                                                                         w[i + 1], i),
                                                                                                                              )),
                                                                                            Map(Function(Length(_x) + 1 -
                                                                                                         _x[i], i), Range(1, Length(_x))),
                                                                                          )) +
                                                                         1

Examples

Basic #

the one-line word 312312

live ↗
InUpDownRuns(Permutation⁡([3,1,2]))\mathrm{UpDownRuns}({\operatorname{Permutation}}([3, 1, 2]))Out33

the one-line word 312312, as a plain list

live ↗
InUpDownRuns([3,1,2])\mathrm{UpDownRuns}(\bigl\lbrack3, 1, 2\bigr\rbrack)Out33

the one-line word 24132413

live ↗
InUpDownRuns(Permutation⁡([2,4,1,3]))\mathrm{UpDownRuns}({\operatorname{Permutation}}([2, 4, 1, 3]))Out33
Properties #

FindStat's value for [1]

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

Known value · FindStat St000638

FindStat's value for [1,2]

live ↗
InCombinatorialStat(Permutation⁡([1,2]),UpDownRuns)\mathrm{CombinatorialStat}({\operatorname{Permutation}}([1, 2]), \text{UpDownRuns})Out11

Known value · FindStat St000638

FindStat's value for [2,1]

live ↗
InCombinatorialStat(Permutation⁡([2,1]),UpDownRuns)\mathrm{CombinatorialStat}({\operatorname{Permutation}}([2, 1]), \text{UpDownRuns})Out22

Known value · FindStat St000638

About
Examples6
CrosswalkFindStat