|
|
A242524
|
|
Number of cyclic arrangements of S={1,2,...,n} such that the difference between any two neighbors is at least 4.
|
|
16
|
|
|
0, 0, 0, 0, 0, 0, 0, 0, 1, 24, 504, 8320, 131384, 2070087, 33465414, 561681192, 9842378284, 180447203232, 3462736479324, 69517900171056, 1458720714556848, 31955023452174314, 729874911380470641, 17359562438053760533, 429391730229931885360
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,10
|
|
COMMENTS
|
a(n)=NPC(n;S;P) is the count of all neighbor-property cycles for a specific set S of n elements and a specific pair-property P. For more details, see the link and A242519.
|
|
LINKS
|
|
|
EXAMPLE
|
The shortest such cycle has length n=9: {1,5,9,4,8,3,7,2,6}.
|
|
MATHEMATICA
|
A242524[n_] := Count[Map[lpf, Map[j1f, Permutations[Range[2, n]]]], 0]/2;
j1f[x_] := Join[{1}, x, {1}];
lpf[x_] := Length[Select[Abs[Differences[x]], # < 4 &]];
(* OR, a less simple, but more efficient implementation. *)
A242524[n_, perm_, remain_] := Module[{opt, lr, i, new},
If[remain == {},
If[Abs[First[perm] - Last[perm]] >= 4, ct++];
Return[ct],
opt = remain; lr = Length[remain];
For[i = 1, i <= lr, i++,
new = First[opt]; opt = Rest[opt];
If[Abs[Last[perm] - new] < 4, Continue[]];
Complement[Range[2, n], perm, {new}]];
];
Return[ct];
];
];
|
|
PROG
|
(C++) See the link.
|
|
CROSSREFS
|
Cf. A242519, A242520, A242521, A242522, A242523, A242525, A242526, A242527, A242528, A242529, A242530, A242531, A242532, A242533, A242534.
|
|
KEYWORD
|
nonn,hard
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|