login
Table of Hamming distances between binary vectors representing i and j, for i >= 0, j >= 0, read by antidiagonals.
20

%I #21 Apr 30 2020 14:53:34

%S 0,1,1,1,0,1,2,2,2,2,1,1,0,1,1,2,2,1,1,2,2,2,1,2,0,2,1,2,3,3,3,3,3,3,

%T 3,3,1,2,1,2,0,2,1,2,1,2,2,2,2,1,1,2,2,2,2,2,1,2,1,1,0,1,1,2,1,2,3,3,

%U 3,3,2,2,2,2,3,3,3,3,2,2,1,2,2,1,0,1,2,2,1,2,2,3,3,2,2,3,3,1,1,3,3,2,2,3,3

%N Table of Hamming distances between binary vectors representing i and j, for i >= 0, j >= 0, read by antidiagonals.

%C a(n,0) = a(0,n) = A000120(n).

%H Alois P. Heinz, <a href="/A101080/b101080.txt">Antidiagonals n = 0..200, flattened</a>

%F a(i,j) = A000120(A003987(i,j)).

%e a(3,5) = 2 because the binary Hamming distance (number of differing bits) between ...0011 and ...0101 is 2.

%e From _Indranil Ghosh_, Mar 31 2017: (Start)

%e Array begins:

%e 0, 1, 1, 2, 1, 2, 2, 3, ...

%e 1, 0, 2, 1, 2, 1, 3, 2, ...

%e 1, 2, 0, 1, 2, 3, 1, 2, ...

%e 2, 1, 1, 0, 3, 2, 2, 1, ...

%e 1, 2, 2, 3, 0, 1, 1, 2, ...

%e 2, 1, 3, 2, 1, 0, 2, 1, ...

%e 2, 3, 1, 2, 1, 2, 0, 1, ...

%e 3, 2, 2, 1, 2, 1, 1, 0, ...

%e ...

%e Triangle formed when the array is read by antidiagonals:

%e 0;

%e 1, 1;

%e 1, 0, 1;

%e 2, 2, 2, 2;

%e 1, 1, 0, 1, 1;

%e 2, 2, 1, 1, 2, 2;

%e 2, 1, 2, 0, 2, 1, 2;

%e 3, 3, 3, 3, 3, 3, 3, 3;

%e ...

%e (End)

%p H:= (i, j)-> add(v, v=convert(Bits[Xor](i, j), base, 2)):

%p seq(seq(H(n, d-n), n=0..d), d=0..20); # _Alois P. Heinz_, Nov 18 2015

%t a[i_, j_] := Total[IntegerDigits[BitXor[i, j], 2]]; Table[a[i-j, j], {i, 0, 20}, {j, 0, i}] // Flatten (* _Jean-François Alcover_, Apr 07 2016 *)

%o (PARI) b(n) = if(n<1, 0, b(n\2) + n%2);

%o tabl(nn) = {for(n=0, nn, for(k=0, n, print1(b(bitxor(k, n - k)),", ");); print(););};

%o tabl(20) \\ _Indranil Ghosh_, Mar 31 2017

%o (Python)

%o for n in range(20):

%o print([bin(k^(n - k))[2:].count("1") for k in range(n + 1)]) # _Indranil Ghosh_, Mar 31 2017

%Y Cf. A000120, A003987.

%K easy,nonn,tabl

%O 0,7

%A _Marc LeBrun_, Nov 29 2004