login
a(1)=1, a(n) = 2*a(n-1) if the minimal positive integer not yet in the sequence is greater than a(n-1), else a(n) = a(n-1)-1.
24

%I #25 Aug 09 2017 23:07:39

%S 1,2,4,3,6,5,10,9,8,7,14,13,12,11,22,21,20,19,18,17,16,15,30,29,28,27,

%T 26,25,24,23,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,62,61,60,

%U 59,58,57,56,55,54,53,52,51,50,49,48,47,94,93,92,91,90,89,88,87,86,85

%N a(1)=1, a(n) = 2*a(n-1) if the minimal positive integer not yet in the sequence is greater than a(n-1), else a(n) = a(n-1)-1.

%C Also: a(1)=1, a(n) = maximal positive number < a(n-1) not yet in the sequence, if it exists, else a(n) = 2*a(n-1).

%C Also: a(1)=1, a(n) = a(n-1)-1, if a(n-1) - 1 > 0 and has not been encountered so far, else a(n) = 2*a(n-1).

%C A reordering of the natural numbers. The sequence is self-inverse in that a(a(n)) = n.

%C Almost certainly a duplicate of A132340. - _R. J. Mathar_, Jun 12 2008

%H Reinhard Zumkeller, <a href="/A132666/b132666.txt">Table of n, a(n) for n = 1..10000</a>

%H <a href="/index/Per#IntegerPermutation">Index entries for sequences that are permutations of the natural numbers</a>

%F G.f.: g(x) = (x(1-2x)/(1-x) + 2x^2*f'(x^3) + 3/4*(f'(x)-2x-1))/(1-x) where f(x) = Sum_{k>=0} x^(2^k) and f'(z) = derivative of f(x) at x = z.

%F a(n) = 5*2^(r/2) - 3 - n, if both r and s are even, else a(n) = 7*2^((s-1)/2) - 3 - n, where r = ceiling(2*log_2((n+2)/3)) and s = ceiling(2*log_2((n+2)/2) - 1).

%F a(n) = 2^floor(1 + (k+1)/2) + 3*2^floor(k/2) - 3 - n, where k=r, if r is even, else k=s (with respect to r and s above; formally, k = ((r+s) + (r-s)*(-1)^r)/2).

%F a(n) = A027383(m) + A027383(m+1) + 1 - n, where m:=max{ k | A027383(k) < n }.

%F a(A027383(n) + 1) = A027383(n+1).

%F a(A027383(n)) = A027383(n-1) + 1 for n > 0.

%t max = 72; f[x_] := Sum[x^(2^k), {k, 0, Ceiling[ Log[2, max]]}]; g[x_] = (x (1 - 2x)/(1 - x) + 2x^2*f'[x^3] + 3/4*(f'[x] - 2x - 1))/(1 - x); Drop[ CoefficientList[ Series[ g[x], {x, 0, max}], x], 1] (* _Jean-François Alcover_, Dec 01 2011 *)

%o (Haskell)

%o import Data.List (delete)

%o a132666 n = a132666_list !! (n-1)

%o a132666_list = 1 : f 1 [2..] where

%o f z xs = y : f y (delete y xs) where

%o y | head xs > z = 2 * z

%o | otherwise = z - 1

%o -- _Reinhard Zumkeller_, Sep 17 2001

%Y For formulas concerning a general parameter p (with respect to the recurrence rule ... a(n)=p*a(n-1) ...) see A132674.

%Y For p=3 to p=10 see A132667 through A132674.

%Y For a similar recurrence rule concerning Fibonacci (A000045) and Lucas numbers (A000032) see A132664 and A132665.

%Y Cf. A027383.

%K nonn,nice

%O 1,2

%A _Hieronymus Fischer_, Aug 24 2007, Sep 15 2007