%I #17 Dec 02 2016 20:05:46
%S 2,1,3,6,4,8,10,5,7,9,11,22,20,18,16,14,12,24,26,13,15,17,19,21,23,25,
%T 27,54,52,50,48,46,44,42,40,38,36,34,32,30,28,56,58,29,31,33,35,37,39,
%U 41,43,45,47,49,51,53,55,57,59
%N A solution to a(n+1) in {a(n)+2, a(n)-2, a(n)*2, a(n)/2} which is a rearrangement of the natural numbers.
%C Use algorithm: when a(n)=2k+1 2k+1 -> 4k+2, 4k, 4k-2, 4k-4, ...-> 2k+2 -> *2-> 4k+4 +2-> 4k+6 -> /2-> 2k+3, 2k+5, +2... ->4k+7. This covers all numbers between 2k+1 and 4k+7 and then the algorithm can be reapplied.
%H <a href="/index/Per#IntegerPermutation">Index entries for sequences that are permutations of the natural numbers</a>
%F a(n) = n if and only if n is a positive term of A168616. Also, for j > 2, a(n) < a(2^j - 5) if and only if n < 2^j - 5. - _Rick L. Shepherd_, May 22 2016
%o (PARI) {get_next_stage(v) = local(k = (v[#v] - 1)/2);
%o forstep(m = 2*v[#v], 2*k + 2, -2, v = concat(v, m));
%o v = concat(v, [2*v[#v], 4*k + 6]);
%o forstep(m = v[#v]/2, 4*k + 7, 2, v = concat(v, m)); v}
%o a = [2, 1, 3]; \\ code assumes last entry here is odd.
%o \\ n-th call to function returns 2^(n + 2) more terms
%o while (#a < 59, a = get_next_stage(a)); a \\ _Rick L. Shepherd_, May 21 2016
%Y Cf. A168616.
%K nonn
%O 1,1
%A _Toby Chamberlain_, Jan 28 2016