login
Irregular triangle read by rows where row n gives the sequence of lengths of components of the Lyndon factorization of the first n terms of A000002.
14

%I #8 Nov 11 2019 21:37:39

%S 1,2,3,3,1,3,1,1,3,3,3,3,1,3,5,3,6,3,6,1,3,8,3,9,3,9,1,3,9,1,1,3,9,3,

%T 3,9,3,1,3,9,3,1,1,3,9,3,3,3,9,7,3,9,7,1,3,9,9,3,9,9,1,3,9,9,1,1,3,9,

%U 9,3,3,9,9,3,1,3,9,14,3,9,15,3,9,15,1,3

%N Irregular triangle read by rows where row n gives the sequence of lengths of components of the Lyndon factorization of the first n terms of A000002.

%C There are no repeated rows, as row n has sum n.

%C We define the Lyndon product of two or more finite sequences to be the lexicographically maximal sequence obtainable by shuffling the sequences together. For example, the Lyndon product of (231) with (213) is (232131), the product of (221) with (213) is (222131), and the product of (122) with (2121) is (2122121). A Lyndon word is a finite sequence that is prime with respect to the Lyndon product. Equivalently, a Lyndon word is a finite sequence that is lexicographically strictly less than all of its cyclic rotations. Every finite sequence has a unique (orderless) factorization into Lyndon words, and if these factors are arranged in lexicographically decreasing order, their concatenation is equal to their Lyndon product. For example, (1001) has sorted Lyndon factorization (001)(1).

%C It appears that some numbers (such as 4) never appear in the sequence.

%e Triangle begins:

%e 1: (1)

%e 2: (2)

%e 3: (3)

%e 4: (3,1)

%e 5: (3,1,1)

%e 6: (3,3)

%e 7: (3,3,1)

%e 8: (3,5)

%e 9: (3,6)

%e 10: (3,6,1)

%e 11: (3,8)

%e 12: (3,9)

%e 13: (3,9,1)

%e 14: (3,9,1,1)

%e 15: (3,9,3)

%e 16: (3,9,3,1)

%e 17: (3,9,3,1,1)

%e 18: (3,9,3,3)

%e 19: (3,9,7)

%e 20: (3,9,7,1)

%e For example, the first 10 terms of A000002 are (1221121221), with Lyndon factorization (122)(112122)(1), so row 10 is (3,6,1).

%t lynQ[q_]:=Array[Union[{q,RotateRight[q,#1]}]=={q,RotateRight[q,#1]}&,Length[q]-1,1,And];

%t lynfac[q_]:=If[Length[q]==0,{},Function[i,Prepend[lynfac[Drop[q,i]],Take[q,i]]][Last[Select[Range[Length[q]],lynQ[Take[q,#1]]&]]]];

%t kolagrow[q_]:=If[Length[q]<2,Take[{1,2},Length[q]+1],Append[q,Switch[{q[[Length[Split[q]]]],q[[-2]],Last[q]},{1,1,1},0,{1,1,2},1,{1,2,1},2,{1,2,2},0,{2,1,1},2,{2,1,2},2,{2,2,1},1,{2,2,2},1]]];

%t kol[n_Integer]:=Nest[kolagrow,{1},n-1];

%t Table[Length/@lynfac[kol[n]],{n,100}]

%Y Row lengths are A296658.

%Y The reversed version is A329316.

%Y Cf. A000002, A000031, A001037, A027375, A059966, A060223, A088568, A102659, A211100, A288605, A296372, A329314, A329317, A329325.

%K nonn,tabf

%O 1,2

%A _Gus Wiseman_, Nov 11 2019