RecursiveEndMaximumCount
FindStat's rix: the number of times, peeling the word, the maximum of what is left is its last entry.
✓ checked against that system · ! checked, with disagreements (hover a chip)FindStat
St000461via Permutation✓RecursiveEndMaximumCount(p)FindStat's rix: the number of times, peeling the word, the maximum of what is left is its last entry.Typed signatures
| Type | Package | Applies |
|---|---|---|
(permutation) -> number | combinatorics | always |
Details
- Defined over
Permutationas an expression in_x, evaluated by compute-engine — the definition IS the implementation. - Takes a
Permutationand 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. - Recursively: the maximum last counts one and the rest is the word without it; the maximum first ends the walk; otherwise the walk goes on with the entries after the maximum (St000461).
Definition
Epsil, as the implementation runs it.
on Permutation, over _x
0 if Length(_x) < 1 else Fold(Function(a if a[1] > a[2] else Apply(
(top: integer) => Apply(
(peak: integer) => [a[1], a[2] - 1, a[3] + 1] if peak == a[2] else [1, 0, a[3]] if peak == a[1] else [peak + 1, a[2], a[3]],
Max(Sum(Map(
Function(j if _x[j] == top else 0, j),
Range(a[1], a[2], 1),
)), 0),
),
Max(Map(
Function(_x[j], j),
Range(a[1], a[2], 1),
)),
), a, b), [
1,
Length(_x),
0,
], Range(1, Length(_x)))[3]Examples
Properties #
About
| Examples | 5 |
|---|---|
| Crosswalk | FindStat |