CyclicShiftIndex
The position of the word among its distinct cyclic shifts in lexicographic order, from 0.
✓ checked against that system · ! checked, with disagreements (hover a chip)FindStat
St001436via BinaryWord✓CyclicShiftIndex(word)The position of the word among its distinct cyclic shifts in lexicographic order, from 0.Typed signatures
| Type | Package | Applies |
|---|---|---|
(binary_word) -> number | combinatorics | always |
Details
- Defined over
BinaryWordas an expression in_x, evaluated by compute-engine — the definition IS the implementation. - Takes a
BinaryWordand 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. - FindStat's St001436. The shifts are compared as binary numerals, which orders words of one length lexicographically; the table starts with a numeral above every shift's.
Definition
Epsil, as the implementation runs it.
on BinaryWord, over _x
0 if Length(_x) < 1 else Apply(
(v: list<integer>) => Max(Sum(Map(Function(
1 if n <
v[1 + 1] else 0,
n,
), Unique(v))), 0),
Apply((a_init: list<integer>) => Fold(
(
a: list<integer>,
b,
) => Apply(
(a_next: list<integer>) => a_next,
Join(
a,
[Max(Sum(Map(Function(_x[(b +
(m - 2)) %
Length(_x) +
1] *
2 ^
(Length(_x) - m), m), Range(1, Length(_x)))), 0)],
),
),
a_init,
Range(1, Length(_x)),
), [2 ^
Length(_x)]),
)Examples
Properties #
About
| Examples | 4 |
|---|---|
| Crosswalk | FindStat |