K[i_, j_] := i + j - 1 /; (j >= 2 i - 3);
K[i_, j_] := K[i - 1, i - j/2 - 1] /; (EvenQ[j] && (j < 2 i - 3));
K[i_, j_] := K[i - 1, i + (j - 1)/2] /; (OddQ[j] && (j < 2 i - 3));
A007063[i_] := A007063[i] = K[i, i]; SetAttributes[A007063, Listable] (* Enrique Pérez Herrero, Feb 09 2010 *)
(* Next program generates the 8 arrays with highlighted diagonal sequences. *)
len = 1000;
roli = Join[{{1}},
NestList[
Join[#[[Riffle[Range[Length[#], (Length[#] + 3)/2, -1],
Range[(Length[#] - 1)/2, 1, -1]]]],
Range[#, # + 2] &[(3 Length[#] + 1)/2]] &, {2, 3, 4}, len]];
rili = Join[{{1}},
NestList[Join[#[[Riffle[Range[(Length[#] + 3)/2, Length[#]],
Range[(Length[#] - 1)/2, 1, -1]]]],
Range[#, # + 2] &[(3 Length[#] + 1)/2]] &, {2, 3, 4},
len]];(*A007063*)
rolo = Join[{{1}},
NestList[Join[#[[Riffle[Range[Length[#], (Length[#] + 3)/2, -1],
Range[1, (Length[#] - 1)/2]]]],
Range[#, # + 2] &[(3 Length[#] + 1)/2]] &, {2, 3, 4},
len]];(*A282348*)
rilo = Join[{{1}},
NestList[Join[#[[Riffle[Range[(Length[#] + 3)/2, Length[#]],
Range[1, (Length[#] - 1)/2, 1]]]],
Range[#, # + 2] &[(3 Length[#] + 1)/2]] &, {2, 3, 4}, len]];
lori = Join[{{1}},
NestList[
Join[#[[Riffle[Range[1, (Length[#] - 1)/2],
Range[(Length[#] + 3)/2, Length[#]]]]],
Range[#, # + 2] &[(3 Length[#] + 1)/2]] &, {2, 3, 4}, len]];
liri = Join[{{1}},
NestList[Join[#[[Riffle[Range[(Length[#] - 1)/2, 1, -1],
Range[(Length[#] + 3)/2, Length[#]]]]],
Range[#, # + 2] &[(3 Length[#] + 1)/2]] &, {2, 3, 4},
len]];(*A356026*)
loro = Join[{{1}},
NestList[Join[#[[Riffle[Range[1, (Length[#] - 1)/2],
Range[Length[#], (Length[#] + 3)/2, -1]]]],
Range[#, # + 2] &[(3 Length[#] + 1)/2]] &, {2, 3, 4}, len]];
liro = Join[{{1}},
NestList[
Join[#[[Riffle[Range[(Length[#] - 1)/2, 1, -1],
Range[Length[#], (Length[#] + 3)/2, -1]]]],
Range[#, # + 2] &[(3 Length[#] + 1)/2]] &, {2, 3, 4}, len]];
(Map[{#, Take[Flatten[Map[Take[#, {(Length[#] + 1)/2}] &, #]], 200] &[
ToExpression[#]]} &, {"rolo", "rilo", "roli", "rili", "loro",
"liro", "lori", "liri"}]) // ColumnForm
rows = 10; Map[{#,
Grid[Map[Map[StringPadLeft[ToString[#], 2] &, #] &,
Take[ToExpression[#], rows]],
Frame -> {None, None, Map[{#, #} -> True &, Range[rows]]},
FrameStyle -> Directive[Red]]} &, {"rolo", "rilo", "roli", "rili",
"loro", "liro", "lori", "liri"}]
(* Peter J. C. Moses, Oct 24 2022; Clark Kimberling, Oct 24 2022 *)
Comments