login
a(1)=1, then a(n)=2*a(n-1) if 2*a(n-1)<=n, a(n)=2*a(n-1)-n otherwise.
5

%I #23 Jul 20 2015 19:24:56

%S 1,2,1,2,4,2,4,8,7,4,8,4,8,2,4,8,16,14,9,18,15,8,16,8,16,6,12,24,19,8,

%T 16,32,31,28,21,6,12,24,9,18,36,30,17,34,23,46,45,42,35,20,40,28,3,6,

%U 12,24,48,38,17,34,7,14,28,56,47,28,56,44,19,38,5,10,20,40,5,10,20,40,1,2

%N a(1)=1, then a(n)=2*a(n-1) if 2*a(n-1)<=n, a(n)=2*a(n-1)-n otherwise.

%C a(A200087(n)) = n and a(m) <> n for m < A200087(n). [_Reinhard Zumkeller_, Nov 13 2011]

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

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

%F It seems that sum(k=1, n, a(k))/n^2 ->1/4

%t nxt[{n_,a_}]:={n+1,If[2a<=n+1,2a,2a-n-1]}; Transpose[NestList[nxt,{1,1},80]][[2]] (* _Harvey P. Dale_, Jul 20 2015 *)

%o (PARI) a=1; for(n=2,100,b=if(sign(2*a-n)-1,2*a,2*a-n); a=b; print1(b,","))

%o (Haskell)

%o a079878 n = a079878_list !! (n-1)

%o a079878_list = 1 : zipWith (\x n -> if x <= n then x else x - n)

%o (map (* 2) a079878_list) [2..]

%o -- _Reinhard Zumkeller_, Nov 13 2011

%Y Cf. A200063 (fixed points), A064456 (positions of 1).

%K nonn

%O 1,2

%A _Benoit Cloitre_, Feb 20 2003