%I #21 Aug 20 2019 07:48:29
%S 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,
%T 28,31,30,29,24,19,33,36,39,38,37,32,43,42,41,44,47,46,45,40,35,50,49,
%U 52,55,54,53,48,59,58,57,60,63,62,61,56,51,34,68,71,70,69,64,75,74,73,76
%N 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.
%C This is a permutation of the nonnegative integers.
%C a(A214433(n)) = A105027(A214433(n)); a(A214489(n)) = A105029(A214489(n)). - _Reinhard Zumkeller_, Jul 21 2012
%H Reinhard Zumkeller, <a href="/A105025/b105025.txt">Table of n, a(n) for n = 0..10000</a>
%H David Applegate, Benoit Cloitre, Philippe Deléham and N. J. A. Sloane, Sloping binary numbers: a new sequence related to the binary numbers [<a href="http://neilsloane.com/doc/slopey.pdf">pdf</a>, <a href="http://neilsloane.com/doc/slopey.ps">ps</a>].
%H <a href="/index/Per#IntegerPermutation">Index entries for sequences that are permutations of the natural numbers</a>
%H <a href="/index/Bi#binary">Index entries for sequences related to binary expansion of n</a>
%e ........0
%e ........1
%e .......10
%e .......11
%e ......100 <- Starting here, the downward diagonals
%e ......101 read 100, 111, 110, 101, giving the block 4, 7, 6, 5.
%e ......110
%e ......111
%e .....1000
%e .....1001
%e .....1010
%e .....1011
%e .........
%p 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
%t 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 *)
%o (Haskell)
%o import Data.Bits ((.|.), (.&.))
%o a105025 n = foldl (.|.) 0 $ zipWith (.&.)
%o a000079_list $ reverse $ enumFromTo n (n - 1 + a070939 n)
%o -- _Reinhard Zumkeller_, Jul 21 2012
%Y Cf. A102370, A105026.
%Y Cf. A070939, A000079.
%Y Cf. A105271 (fixed points), A214416 (inverse).
%K nonn,nice,base
%O 0,3
%A _N. J. A. Sloane_, Apr 03 2005
%E More terms from _Emeric Deutsch_, Apr 16 2005