Skip to content

DistinctCycleLengths ​

How many distinct cycle sizes occur.

DistinctCycleLengths(p)How many distinct cycle sizes occur.
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 Count(Filter(
                                       Range(1, Length(_x), 1),
                                       Function(Count(Filter(Map(
                                                                  Function(Min(Filter(
                                                                                       Range(1, Length(_x), 1),
                                                                                       Function(Fold(
                                                                                                      Function(_x[w], w, j),
                                                                                                      i,
                                                                                                      Range(1, k, 1),
                                                                                                    ) ==
                                                                                                i, k),
                                                                                     )), i),
                                                                  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),
                                                                        ),
                                                                ), Function(c ==
                                                                           m, c))) >
                                                0, m),
                                     ))

Examples

Basic #

the one-line word 312312

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

the one-line word 24132413

live ↗
InDistinctCycleLengths(Permutation⁡([2,4,1,3]))\mathrm{DistinctCycleLengths}({\operatorname{Permutation}}([2, 4, 1, 3]))Out11
About
Examples2