Skip to content

PermutationGenus ​

The genus g with n + 1 - 2g the cycles of p plus the cycles of p^-1 composed with the long cycle.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt001394via Permutation✓
PermutationGenus(p)The genus g with n + 1 - 2g the cycles of p plus the cycles of p^-1 composed with the long cycle.
Typed signatures
TypePackageApplies
(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 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.

Definition

Epsil, as the implementation runs it.

on Permutation, over _x

0 if Length(_x) < 1 else Apply(
                                (q: list<integer>) => (Length(_x) + 1 -
                                                       Count(Filter(
                                                                     Range(
                                                                            1,
                                                                            Length(_x),
                                                                            1,
                                                                          ),
                                                                     Function(Fold(
                                                                                    Function(
                                                                                              w if w <= 0 else 0 if w == i else -1 if w < i else _x[w],
                                                                                              w,
                                                                                              k,
                                                                                            ),
                                                                                    _x[i],
                                                                                    Range(1, Length(_x), 1),
                                                                                  ) ==
                                                                              0, i),
                                                                   )) - Count(Filter(
                                                                        Range(1, Length(_x)),
                                                                        Function(Fold(
                                                                                       Function(w if w <= 0 else 0 if w == i else -1 if w < i else q[w], w, k),
                                                                                       q[i],
                                                                                       Range(1, Length(_x), 1),
                                                                                     ) ==
                                                                                 0, i),
                                                                      ))) / 2,
                                Map(
                                     Function(Sum(Map(Function(
                                                                j if _x[j] == i %
                                                                              Length(_x) +
                                                                              1 else 0,
                                                                j,
                                                              ), Range(
                                                                       1,
                                                                       Length(_x),
                                                                     ))), i),
                                     Range(1, Length(_x)),
                                   ),
                              )

Examples

Basic #

the one-line word 312312

live ↗
InPermutationGenus(Permutation⁡([3,1,2]))\mathrm{PermutationGenus}({\operatorname{Permutation}}([3, 1, 2]))Out11

the one-line word 24132413

live ↗
InPermutationGenus(Permutation⁡([2,4,1,3]))\mathrm{PermutationGenus}({\operatorname{Permutation}}([2, 4, 1, 3]))Out11
Properties #

FindStat's value for [1]

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

Known value · FindStat St001394

FindStat's value for [1,2]

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

Known value · FindStat St001394

FindStat's value for [2,1]

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

Known value · FindStat St001394

About
Examples5
CrosswalkFindStat