A105025 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 downward direction and convert to decimal.
0, 1, 3, 2, 4, 7, 6, 5, 11, 10, 9, 12, 15, 14, 13, 8, 18, 17, 20, 23, 22, 21, 16, 27, 26, 25, 28, 31, 30, 29, 24, 19, 33, 36, 39, 38, 37, 32, 43, 42, 41, 44, 47, 46, 45, 40, 35, 50, 49, 52, 55, 54, 53, 48, 59, 58, 57, 60, 63, 62, 61, 56, 51, 34, 68, 71, 70, 69, 64, 75, 74, 73, 76
Offset: 0
Examples
........0 ........1 .......10 .......11 ......100 <- Starting here, the downward diagonals ......101 read 100, 111, 110, 101, giving the block 4, 7, 6, 5. ......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].
- 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 ((.|.), (.&.)) a105025 n = foldl (.|.) 0 $ zipWith (.&.) a000079_list $ reverse $ enumFromTo n (n - 1 + a070939 n) -- Reinhard Zumkeller, Jul 21 2012
-
Maple
a:=proc(i,j) if j=1 and i<=16 then 0 else convert(i+15,base,2)[7-j] fi end: seq(a(i,2)*2^4+a(i+1,3)*2^3+a(i+2,4)*2^2+a(i+3,5)*2+a(i+4,6),i=1..16); # this is a Maple program (not necessarily the simplest) only for one block of (2^4) numbers # Emeric Deutsch, Apr 16 2005
-
Mathematica
numberOfBlocks = 7; bloc[n_] := Join[ Table[ IntegerDigits[k, 2], {k, 2^(n-1), 2^n-1}], Table[ Rest @ IntegerDigits[k, 2], {k, 2^n, 2^n+n}]]; Join[{0, 1}, Flatten[ Table[ Table[ Diagonal[bloc[n], k] // FromDigits[#, 2]&, {k, 0, -2^(n-1)+1, -1}], {n, 2, numberOfBlocks}]]] (* Jean-François Alcover, Nov 03 2016 *)
Extensions
More terms from Emeric Deutsch, Apr 16 2005
Comments