A105027 Write numbers in binary under each other; to get the next block of 2^k (k >= 0) terms of the sequence, start at 2^k, read diagonals in upward direction and convert to decimal.
0, 1, 3, 2, 6, 5, 4, 7, 15, 10, 9, 8, 11, 14, 13, 12, 28, 23, 18, 17, 16, 19, 22, 21, 20, 31, 26, 25, 24, 27, 30, 29, 61, 44, 39, 34, 33, 32, 35, 38, 37, 36, 47, 42, 41, 40, 43, 46, 45, 60, 55, 50, 49, 48, 51, 54, 53, 52, 63, 58, 57, 56, 59, 62, 126, 93, 76, 71, 66, 65, 64, 67, 70
Offset: 0
Examples
0 1 10 11 -> 100 Starting here, the upward diagonals 101 read 110, 101, 100, 111, giving the block 6, 5, 4, 7. 110 111 1000 1001 1010 1011 ...
Links
- Reinhard Zumkeller, Table of n, a(n) for n = 0..10000
- David Applegate, Benoit Cloitre, Philippe Deléham and N. J. A. Sloane, Sloping binary numbers: a new sequence related to the binary numbers [pdf, ps].
- David Applegate, Benoit Cloitre, Philippe Deléham and N. J. A. Sloane, Sloping binary numbers: a new sequence related to the binary numbers, J. Integer Seq. 8 (2005), no. 3, Article 05.3.6, 15 pp.
- Index entries for sequences that are permutations of the natural numbers
- Index entries for sequences related to binary expansion of n
Crossrefs
Programs
-
Haskell
import Data.Bits ((.|.), (.&.)) a105027 n = foldl (.|.) 0 $ zipWith (.&.) a000079_list $ enumFromTo (n + 1 - a070939 n) n -- Reinhard Zumkeller, Jul 21 2012
-
Mathematica
block[k_] := Module[{t}, t = Table[PadLeft[IntegerDigits[n, 2], k+1], {n, 2^(k-1), 2^(k+1)-1}]; Table[FromDigits[Table[t[[n-m+1, m]], {m, 1, k+1}], 2], {n,2^(k-1)+1, 2^(k-1)+2^k}]]; block[0] = {0, 1}; Table[block[k], {k, 0, 6}] // Flatten (* Jean-François Alcover, Jun 30 2015 *)
-
PARI
apply( {A105027(n,L=exponent(n+!n))=sum(k=0,L,bitand(n+k-L,2^k))}, [0..55]) \\ M. F. Hasler, Apr 18 2022
Formula
a(2^n - 1) = A102371(n) for n > 0. - Philippe Deléham, May 10 2005
Extensions
More terms from John W. Layman, Apr 07 2005
Comments