login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

Number of cyclic arrangements of S={1,2,...,2n} such that the binary expansions of any two neighbors differ by one bit.
16

%I #16 Oct 25 2018 17:25:50

%S 0,0,1,0,2,8,0,0,224,754,0,26256,0,0,22472304,0,90654576,277251016,0,

%T 7852128780

%N Number of cyclic arrangements of S={1,2,...,2n} such that the binary expansions of any two neighbors differ by one bit.

%C Here, a(n)=NPC(2n;S;P) is the count of all neighbor-property cycles for a specific set S of 2n elements and a pair-property P. For more details, see the link and A242519.

%C In this case the property P is the Gray condition. The choice of the set S is important; when it is replaced by {0,1,2,...,2n-1}, the sequence changes completely and becomes A236602.

%H S. Sykora, <a href="http://dx.doi.org/10.3247/SL5Math14.002">On Neighbor-Property Cycles</a>, <a href="http://ebyte.it/library/Library.html#math">Stan's Library</a>, Volume V, 2014.

%e The two cycles for n=5 (cycle length 10) are:

%e C_1={1,3,7,5,4,6,2,10,8,9}, C_2={1,5,4,6,7,3,2,10,8,9}.

%t A242530[n_] := Count[Map[lpf, Map[j1f, Permutations[Range[2, 2 n]]]], 0]/2;

%t j1f[x_] := Join[{1}, x, {1}];

%t btf[x_] := Module[{i},

%t Table[DigitCount[BitXor[x[[i]], x[[i + 1]]], 2, 1], {i,

%t Length[x] - 1}]];

%t lpf[x_] := Length[Select[btf[x], # != 1 &]];

%t Table[A242530[n], {n, 1, 5}]

%t (* OR, a less simple, but more efficient implementation. *)

%t A242530[n_, perm_, remain_] := Module[{opt, lr, i, new},

%t If[remain == {},

%t If[DigitCount[BitXor[First[perm], Last[perm]], 2, 1] == 1, ct++];

%t Return[ct],

%t opt = remain; lr = Length[remain];

%t For[i = 1, i <= lr, i++,

%t new = First[opt]; opt = Rest[opt];

%t If[DigitCount[BitXor[Last[perm], new], 2, 1] != 1, Continue[]];

%t A242530[n, Join[perm, {new}],

%t Complement[Range[2, 2 n], perm, {new}]];

%t ];

%t Return[ct];

%t ];

%t ];

%t Table[ct = 0; A242530[n, {1}, Range[2, 2 n]]/2, {n, 1, 10}] (* _Robert Price_, Oct 25 2018 *)

%o (C++) See the link.

%Y Cf. A236602, A242519, A242520, A242521, A242522, A242523, A242524, A242525, A242526, A242527, A242528, A242529, A242531, A242532, A242533, A242534.

%K nonn,hard,more

%O 1,5

%A _Stanislav Sykora_, May 30 2014

%E a(16)-a(20) from _Fausto A. C. Cariboni_, May 10 2017, May 15 2017