Skip to content

Makl ​

Foata and Zeilberger's makl: (1-32) + (31-2) + (32-1) + (21).

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt000798via Permutation✓
Makl(p)Foata and Zeilberger's makl: (1-32) + (31-2) + (32-1) + (21).
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) < 3 else Sum(Map(
                                   Function(
                                             Count(Filter(
                                                           Range(1, j - 1),
                                                           Function(
                                                                     _x[i] <
                                                                     _x[j + 1] && _x[j +
                                                                            1] <
                                                                         _x[j],
                                                                     i,
                                                                   ),
                                                         )),
                                             j,
                                           ),
                                   Range(2, Length(_x) - 1),
                                 ))) + (0 if Length(_x) < 3 else Sum(Map(
                                                                         Function(Count(Filter(
                                                                                                Range(i + 2, Length(_x)),
                                                                                                Function(_x[i + 1] <
                                                                                                         _x[k] &&
                                                                                                         _x[k] < _x[i], k),
                                                                                              )), i),
                                                                         Range(
                                                                                1,
                                                                                Length(_x) - 2,
                                                                              ),
                                                                       ))) + (0 if Length(_x) < 3 else Sum(Map(
                                                                                                               Function(Count(Filter(
                                                                                                                                      Range(i + 2, Length(_x)),
                                                                                                                                      Function(_x[k] <
                                                                                                                                               _x[i + 1] &&
                                                                                                                                               _x[i + 1] <
                                                                                                                                               _x[i], k),
                                                                                                                                    )), i),
                                                                                                               Range(1, Length(_x) - 2),
                                                                                                             ))) +
                                                                            (0 if Length(_x) < 2 else Count(Filter(
                                                                                                                    Range(1, Length(_x) - 1),
                                                                                                                    Function(_x[i] >
                                                                                                                             _x[i + 1], i),
                                                                                                                  )))

Examples

Basic #

the one-line word 312312

live ↗
InMakl(Permutation⁡([3,1,2]))\mathrm{Makl}({\operatorname{Permutation}}([3, 1, 2]))Out22

the one-line word 312312, as a plain list

live ↗
InMakl([3,1,2])\mathrm{Makl}(\bigl\lbrack3, 1, 2\bigr\rbrack)Out22

the one-line word 24132413

live ↗
InMakl(Permutation⁡([2,4,1,3]))\mathrm{Makl}({\operatorname{Permutation}}([2, 4, 1, 3]))Out22
Properties #

FindStat's value for [1,2]

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

Known value · FindStat St000798

FindStat's value for [2,1]

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

Known value · FindStat St000798

FindStat's value for [1,2,3]

live ↗
InCombinatorialStat(Permutation⁡([1,2,3]),Makl)\mathrm{CombinatorialStat}({\operatorname{Permutation}}([1, 2, 3]), \text{Makl})Out00

Known value · FindStat St000798

About
Examples6
CrosswalkFindStat