Skip to content

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)FindStatSt001436via BinaryWord✓
CyclicShiftIndex(word)The position of the word among its distinct cyclic shifts in lexicographic order, from 0.
Typed signatures
TypePackageApplies
(binary_word) -> numbercombinatoricsalways

Domain: Binary word statistics

Details
  • Defined over BinaryWord as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a BinaryWord 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.
  • 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

Basic #

the word 110100111110100111

live ↗
InCyclicShiftIndex(BinaryWord⁡([1,1,0,1,0,0,1,1,1]))\mathrm{CyclicShiftIndex}({\operatorname{BinaryWord}}([1, 1, 0, 1, 0, 0, 1, 1, 1]))Out55
Properties #

FindStat's value for 0

live ↗
InCombinatorialStat(BinaryWord⁡([0]),CyclicShiftIndex)\mathrm{CombinatorialStat}({\operatorname{BinaryWord}}([0]), \text{CyclicShiftIndex})Out00

Known value · FindStat St001436

FindStat's value for 1

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

Known value · FindStat St001436

FindStat's value for 00

live ↗
InCombinatorialStat(BinaryWord⁡([0,0]),CyclicShiftIndex)\mathrm{CombinatorialStat}({\operatorname{BinaryWord}}([0, 0]), \text{CyclicShiftIndex})Out00

Known value · FindStat St001436

About
Examples4
CrosswalkFindStat