login
Replace 2^k in the binary representation of n with n-k (i.e. if n = 2^a + 2^b + 2^c + ... then a(n) = (n-a) + (n-b) + (n-c) + ...).
2

%I #21 Nov 14 2014 09:34:45

%S 0,1,1,5,2,8,9,18,5,15,16,29,19,34,36,54,12,30,31,52,34,57,59,85,41,

%T 68,70,100,75,107,110,145,27,61,62,99,65,104,106,148,72,115,117,163,

%U 122,170,173,224,87,138,140,194,145,201,204,263,156,216,219,282,226

%N Replace 2^k in the binary representation of n with n-k (i.e. if n = 2^a + 2^b + 2^c + ... then a(n) = (n-a) + (n-b) + (n-c) + ...).

%H Alois P. Heinz, <a href="/A198192/b198192.txt">Table of n, a(n) for n = 0..10000</a>

%F a(n) = n*A000120(n) - A073642(n). - _Franklin T. Adams-Watters_, Oct 22 2011

%F a(n) = b(n,n) with b(0,k) = 0, b(n,k) = k*(n mod 2) + b(floor(n/2),k-1) for n>0. - _Alois P. Heinz_, Oct 25 2011

%e a(5) = (5-2) + (5-0) = 8 because 5 = 2^2 + 2^0.

%e a(7) = (7-2) + (7-1) + (7-0) = 18 because 7 = 2^2 + 2^1 + 2^0.

%p b:= (n, k)-> `if`(n=0, 0, k*(n mod 2)+b(floor(n/2), k-1)):

%p a:= n-> b(n, n):

%p seq(a(n), n=0..100); # _Alois P. Heinz_, Oct 25 2011

%o (MATLAB) % n is number of terms to be computed:

%o function [B] = predAddition(n)

%o for i = 0:n

%o k = i;

%o c = 0;

%o s = 0;

%o while(k ~= 0)

%o if ((i - c) >= 0)

%o s = s + mod(k,2)*(i-c);

%o end

%o c = c + 1;

%o k = (k - mod(k,2))/2;

%o end

%o B(i+1) = s;

%o end

%o end

%Y Cf. A000120, A073642.

%K nonn,look,base

%O 0,4

%A _Brian Reed_, Oct 21 2011