A051145 a(0)=0, a(1)=1, a(n) = smallest number such that sequence b(n) = a(n) OR a(n+1) is strictly monotonically increasing.
0, 1, 2, 4, 3, 8, 4, 9, 6, 16, 7, 24, 32, 25, 34, 28, 35, 64, 36, 65, 38, 72, 39, 80, 40, 81, 42, 84, 43, 128, 44, 129, 46, 144, 47, 192, 48, 193, 50, 196, 51, 200, 52, 201, 54, 256, 55, 264, 64, 265, 66, 268, 67, 272, 68, 273, 70, 280, 71, 288, 72, 289, 74, 292, 75, 304
Offset: 0
Examples
To find a(6): we have a(4)=3=11, a(5)=8=1000, 3 OR 8 = 1011 = 11, smallest number which when OR-ed with 8 gives a number bigger than 11 is 4, since then 4=100 OR 8=1000 = 1100=12; so a(6)=4, b(6)=12 (cf. A051146).
Links
- Reinhard Zumkeller, Table of n, a(n) for n = 0..10000
Programs
-
Haskell
import Data.Bits ((.|.)) a051145 n = a051145_list !! n a051145_list = 0 : 1 : f 1 1 where f x b = y : f y z where (y, z) = head [(y, z) | y <- [1..], let z = x .|. y :: Integer, z > b] -- Reinhard Zumkeller, Oct 25 2012
-
Mathematica
a[0] = 0; a[1] = 1; a[n_] := a[n] = (b = 0; While[b++; BitOr[b, a[n-1]] <= BitOr[a[n-2], a[n-1]]]; b); Table[a[n], {n, 0, 65}] (* Jean-François Alcover, Oct 07 2011 *)
Formula
a(n) = ((a(n-1) OR a(n-2)) + 1) AND NOT a(n-1). - Charlie Neder, Oct 12 2018
Extensions
More terms from Larry Reeves (larryr(AT)acm.org), Oct 03 2000
Comments