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 canonical Gray cycles of length 2n.
6

%I #38 Feb 28 2022 07:38:35

%S 1,1,1,6,4,22,96,1344,672,3448,12114,158424,406312,4579440,37826256,

%T 906545760,362618304,1784113248,5576251408,68998853808,154939065862

%N Number of canonical Gray cycles of length 2n.

%C By a canonical Gray cycle (CGC) of length 2n is intended a mono-cyclic permutation of the integers {0,1,2,...,2n-1} such that (i) it starts with "0", (ii) the binary expansions of any two adjacent terms of the cycle differ by exactly one bit, and (iii) the last term is larger than the second. Note: there are no CGC's of odd length.

%C For n>1, a(n) is also the number of all distinct Hamiltonian circuits in a simple graph with 2n vertices, labeled 0,1,2,...,(2n-1), in which two vertices are connected by an edge only if the binary expansions of their labels differ by exactly one bit.

%C The sequence is a superset of A066037.

%H Stanislav Sykora, <a href="http://dx.doi.org/10.3247/SL5Math14.001">On Canonical Gray Cycles</a>, Stan's Library, Vol.V, January 2014, DOI: 10.3247/SL5Math14.001.

%F a(2^(n-1)) = A066037(n).

%F a(n) = A350784(n)/2 for n >= 2. - _Martin Ehrenstein_, Feb 16 2022

%e a(5) = 4 since there are only these 4 CGC's of length 10:

%e {0 2 3 7 6 4 5 1 9 8}

%e {0 2 6 4 5 7 3 1 9 8}

%e {0 4 5 7 6 2 3 1 9 8}

%e {0 4 6 2 3 7 5 1 9 8}

%t A236602[n_] := Count[Map[lpf, Map[j0f, Permutations[Range[2 n - 1]]]], 0]/2;

%t j0f[x_] := Join[{0}, x, {0}];

%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 Join[{1}, Table[A236602[n], {n, 2, 5}]]

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

%t A236602[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 A236602[n, Join[perm, {new}],

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

%t ];

%t Return[ct];

%t ];

%t ];

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

%o (C++) See link.

%Y Cf. A066037 (subset), A236603, A350784.

%K nonn,hard,more

%O 1,4

%A _Stanislav Sykora_, Feb 01 2014

%E a(17)-a(18) from _Fausto A. C. Cariboni_, May 13 2017

%E a(19)-a(20) from _Martin Ehrenstein_, Feb 16 2022

%E a(21) from _Martin Ehrenstein_, Feb 21 2022