login
If the numbers a(1)...a(n) contain a hole, then a(n+1) is the smallest hole; otherwise a(n+1) = a(n-1) + a(n).
5

%I #32 Feb 19 2024 10:29:52

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

%T 26,51,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,

%U 49,50,99,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71

%N If the numbers a(1)...a(n) contain a hole, then a(n+1) is the smallest hole; otherwise a(n+1) = a(n-1) + a(n).

%C Let H be the set of positive numbers less than a(n) which are not equal to some a(i), i < n. This H is the 'set of holes so far'. If H is nonempty, then define a(n+1) = minimum(H). Otherwise define a(n+1) = a(n-1) + a(n).

%C Permutation of the natural numbers with inverse A099424.

%C A060013(n+1) = a(A060013(n)+1). - _Reinhard Zumkeller_, Mar 04 2008

%H Reinhard Zumkeller, <a href="/A060000/b060000.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 a(k)=k-1 if k>=7 and k <> 2^m * 3 + 4; a(k)=(k-1)*2-3 if k>=7 and k == 2^m * 3 + 4. - _Alfred Heiligenbrunner_, Jun 08 2004

%t h = {1, 2}; a = 1; b = 2; Do[ g = Sort[ h ]; If[ g[ [ -1 ] ] + 1 == n, c = a + b, k = 1; While[ g[ [ k ] ] == k, k++ ]; c = k ]; a = b; b = c; h = Append[ h, c ], { n, 3, 100} ]; h

%t (* faster program *) h = {1, 2, 3, 5, 4, 9}; lastSum = 9; Do[AppendTo[h, If[ ++akt < lastSum, akt, ++akt; lastSum = 2*lastSum - 3]], {akt, 5, 100}]; h (* _Alfred Heiligenbrunner_, Jun 05 2004 *)

%o (Haskell)

%o a060000 n = a060000_list !! (n-1)

%o a060000_list = 1 : 2 : f 1 2 2 [] where

%o f x y m [] = z : f y z z [m+1..z-1] where z = x + y

%o f x y m (h:hs) = h : f y h m hs

%o -- _Reinhard Zumkeller_, Sep 22 2011

%Y Cf. A060013, A060030, A000045.

%K easy,nonn,nice

%O 1,2

%A _Rainer Rosenthal_, Mar 09 2001

%E More terms from _Robert G. Wilson v_ and Larry Reeves (larryr(AT)acm.org), Mar 15 2001