|
MATHEMATICA
|
bar[a_List] := a /. {1 -> 3, 3 -> 1};
q[0, _] = {}; q[1, _] = {1}; q[2, i_] := If[EvenQ[i], Table[{1, 3}, {i/2}], Append[Table[{1, 3}, {(i-1)/2}], 1]] // Flatten;
q[n_, i_] := q[n, i] = If[EvenQ[i], If[Mod[n, 3] == 1, Join[q[n-1, i], q[n-2, i]], Join[q[n-1, i], q[n-2, i] // bar]], If[Mod[n, 3] == 0, Join[q[n-1, i], q[n-2, i]], Join[q[n-1, i], q[n-2, i] // bar]]];
a[n_] := q[n+1, 4] // FromDigits;
|