A290743——Maximum number of distinct Lyndon factors that can appear in words of length n over an alphabet of size 2.
A290743——在大小为 2 的字母表上, 长度为 n 的单词中可以出现的不同林顿因子的最大数量。
S=2,基本解。 2, 3, 4, 6, 8, 11, 14, 18, 22, 27, 32, 38, 44, 51, 58, 66, 74, 83, 92, 102, 112, 123, 134, 146, 158, 171, 184, 198, 212, 227, 242, 258, 274, 291, 308, 326, 344, 363, 382, 402, 422, 443, 464, 486, 508,
圆满解决——"在大小为 S 的字母表上, 长度为 n 的单词中可以出现的不同林顿因子的最大数量"问题。——问题分2块: 1,S=n,基本解。2,S=n,具体解(具体的"王牌单词”与具体的“王牌碎片”)。
S=2,基本解。{1, 3, 4, 6, 8, 11, 14, 18, 22, 27, 32, 38, 44, 51, 58, 66, 74, 83, 92, 102, 112, 123, 134, 146, 158, 171, 184, 198, 212, 227, 242, 258, 274, 291, 308, 326, 344, 363, 382, 402, 422, 443, 464, 486, 508, 531, 554, 578, 602, 627},
S=3,基本解。{1, 3, 6, 8, 11, 15, 19, 24, 30, 36, 43, 51, 59, 68, 78, 88, 99, 111, 123, 136, 150, 164, 179, 195, 211, 228, 246, 264, 283, 303, 323, 344, 366, 388, 411, 435, 459, 484, 510, 536, 563, 591, 619, 648, 678, 708, 739, 771, 803, 836},
S=4,基本解。{1, 3, 6, 10, 13, 17, 22, 28, 34, 41, 49, 58, 67, 77, 88, 100, 112, 125, 139, 154, 169, 185, 202, 220, 238, 257, 277, 298, 319, 341, 364, 388, 412, 437, 463, 490, 517, 545, 574, 604, 634, 665, 697, 730, 763, 797, 832, 868, 904, 941},
S=5,基本解。{1, 3, 6, 10, 15, 19, 24, 30, 37, 45, 53, 62, 72, 83, 95, 107, 120, 134, 149, 165, 181, 198, 216, 235, 255, 275, 296, 318, 341, 365, 389, 414, 440, 467, 495, 523, 552, 582, 613, 645, 677, 710, 744, 779, 815, 851, 888, 926, 965, 1005}}
\(\cdots\cdots\)
- Table[(n (n + 1) - (s*Floor[n/s] + 2 Mod[n, s]) Floor[(n + s)/s] + 2 s + 2 (n - s) Floor[Ramp[(2 s - n)/s]])/2, {s, 2, 5}, {n, 50}]————————绝妙的通项公式!!!!!
复制代码
S=2,具体解。
a(1)=1, {"0", {0}}——a(1)=1, {"0", {0}}——这样理解,后面数据出来就流畅了。
a(2)=3, {"01", {0, 1, 01}}
a(3)=4, {"001", {0, 1, 01, 001}}——"001" =“Lyndon”= “王牌单词”——{0, 1, 01, 001}=“王牌碎片”。
a(4)=6, {"0011", {0, 1, 01, 001, 011, 0011}}
a(5)=8, {"00011", {0, 1, 01, 001, 011, 0001, 0011, 00011}}
a(6)=11, {"000111", {0, 1, 01, 001, 011, 0001, 0011, 0111, 00011, 00111, 000111}}
a(7)=14, {"0000111", {0, 1, 01, 001, 011, 0001, 0011, 0111, 00001, 00011, 00111, 000011, 000111, 0000111}}
a(8)=18, {"00001111", {0, 1, 01, 001, 011, 0001, 0011, 0111, 00001, 00011, 00111, 01111, 000011, 000111, 001111, 0000111, 0001111, 00001111}}
a(9)=22, {"000001111", {0, 1, 01, 001, 011, 0001, 0011, 0111, 00001, 00011, 00111, 01111, 000001, 000011, 000111, 001111, 0000011, 0000111, 0001111, 00000111, 00001111, 000001111}}
\(\cdots\cdots\)
S=3,具体解。
a(1)=1, {"0", {0}}
a(2)=3, {"01", {0, 1, 01}}
a(3)=6, {"012", {0, 1, 2, 01, 12, 012}}
a(4)=8, {"0012", {0, 1, 2, 01, 12, 001, 012, 0012}}
a(5)=11, {"00112", {0, 1, 2, 01, 12, 001, 011, 112, 0011, 0112, 00112}}
a(6)=15, {"001122", {0, 1, 2, 01, 12, 001, 011, 112, 122, 0011, 0112, 1122, 00112, 01122, 001122}}
a(7)=19, {"0001122", {0, 1, 2, 01, 12, 001, 011, 112, 122, 0001, 0011, 0112, 1122, 00011, 00112, 01122, 000112, 001122, 0001122}}
a(8)=24, {"00011122", {0, 1, 2, 01, 12, 001, 011, 112, 122, 0001, 0011, 0111, 1112, 1122, 00011, 00111, 01112, 11122, 000111, 001112, 011122, 0001112, 0011122, 00011122}}
a(9)=30, {"000111222", {0, 1, 2, 01, 12, 001, 011, 112, 122, 0001, 0011, 0111, 1112, 1122, 1222, 00011, 00111, 01112, 11122, 11222, 000111, 001112, 011122, 111222, 0001112, 0011122, 0111222, 00011122, 00111222, 000111222}}
\(\cdots\cdots\)
S=4,具体解。
a(1)=1, {"0", {0}}
a(2)=3, {"01", {0, 1, 01}}
a(3)=6, {"012", {0, 1, 2, 01, 12, 012}}
a(4)=10, {"0123", {0, 1, 2, 3, 01, 12, 23, 012, 123, 0123}}
a(5)=13, {"00123", {0, 1, 2, 3, 01, 12, 23, 001, 012, 123, 0012, 0123, 00123}}
a(6)=17, {"001123", {0, 1, 2, 3, 01, 12, 23, 001, 011, 112, 123, 0011, 0112, 1123, 00112, 01123, 001123}}
a(7)=22, {"0011223", {0, 1, 2, 3, 01, 12, 23, 001, 011, 112, 122, 223, 0011, 0112, 1122, 1223, 00112, 01122, 11223, 001122, 011223, 0011223}}
a(8)=28, {"00112233", {0, 1, 2, 3, 01, 12, 23, 001, 011, 112, 122, 223, 233, 0011, 0112, 1122, 1223, 2233, 00112, 01122, 11223, 12233, 001122, 011223, 112233, 0011223, 0112233, 00112233}}
a(9)=34, {"000112233", {0, 1, 2, 3, 01, 12, 23, 001, 011, 112, 122, 223, 233, 0001, 0011, 0112, 1122, 1223, 2233, 00011, 00112, 01122, 11223, 12233, 000112, 001122, 011223, 112233, 0001122, 0011223, 0112233, 00011223, 00112233, 000112233}}
\(\cdots\cdots\)
S=5,具体解。
a(1)=1, {"0", {0}}
a(2)=3, {"01", {0, 1, 01}}
a(3)=6, {"012", {0, 1, 2, 01, 12, 012}}
a(4)=10, {"0123", {0, 1, 2, 3, 01, 12, 23, 012, 123, 0123}}
a(5)=15, {"01234", {0, 1, 2, 3, 4, 01, 12, 23, 34, 012, 123, 234, 0123, 1234, 01234}}
a(6)=19, {"001234", {0, 1, 2, 3, 4, 01, 12, 23, 34, 001, 012, 123, 234, 0012, 0123, 1234, 00123, 01234, 001234}}
a(7)=24, {"0011234", {0, 1, 2, 3, 4, 01, 12, 23, 34, 001, 011, 112, 123, 234, 0011, 0112, 1123, 1234, 00112, 01123, 11234, 001123, 011234, 0011234}}
a(8)=30, {"00112234", {0, 1, 2, 3, 4, 01, 12, 23, 34, 001, 011, 112, 122, 223, 234, 0011, 0112, 1122, 1223, 2234, 00112, 01122, 11223, 12234, 001122, 011223, 112234, 0011223, 0112234, 00112234}}
a(9)=37, {"001122334", {0, 1, 2, 3, 4, 01, 12, 23, 34, 001, 011, 112, 122, 223, 233, 334, 0011, 0112, 1122, 1223, 2233, 2334, 00112, 01122, 11223, 12233, 22334, 001122, 011223, 112233, 122334, 0011223, 0112233, 1122334, 00112233, 01122334, 001122334}}
\(\cdots\cdots\)
\(\cdots\cdots\)
- Q[s_, n_] := Module[{A, B, d, T, R}, A = FrobeniusSolve[ConstantArray[1, s], n]; ——————这代码可以调整吗?????
- B = (Total[Boole[# > 0] & /[url=home.php?mod=space&uid=6175]@[/url] #] + Sum[#[[i]]*#[[j]], {i, s - 1}, {j, i + 1, s}]) & /@ A;
- d = Max[B]; T = Flatten[Position[B, d]]; R = A[[T]]; If[Length[R] > 1, R = Sort[R, Function[{a, b},
- Module[{i = 1}, While[i <= s && a[[i]] == b[[i]], i++]; If[i > s, False, a[[i]] > b[[i]]]]]];]; First[R]]
- G[s_, n_] := Module[{U, V, W, f}, U = Q[s, n]; V = StringJoin[Flatten[Table[ConstantArray[ToString[i - 1], U[[i]]], {i, s}]]];
- W = {}; Do[Do[AppendTo[W, StringTake[V, {i, j}]], {j, i, StringLength[V]}], {i, 1, StringLength[V]}]; W = DeleteDuplicates[W];
- f = Select[W, StringLength[#] == 1 || Length[Union[Characters[#]]] > 1 &]; f = SortBy[f, {StringLength, # &}]; {V, f}]
- Do[{V, f} = G[5, n]; P = "a(" <> ToString[n] <> ")=" <> ToString[Length[f]] <> ", {"" <> V <> "", {" <> StringRiffle[f, ", "] <> "}}"; Print[P], {n, 9}]
复制代码 |