login
Binary "exponentiation" without carries: {0..y}^{0..x}, where y (column index) is binary encoding of GF(2)-polynomial and x (row index) is the exponent.
22

%I #16 Oct 26 2022 16:01:02

%S 1,0,1,0,1,1,0,1,2,1,0,1,4,3,1,0,1,8,5,4,1,0,1,16,15,16,5,1,0,1,32,17,

%T 64,17,6,1,0,1,64,51,256,85,20,7,1,0,1,128,85,1024,257,120,21,8,1,0,1,

%U 256,255,4096,1285,272,107,64,9,1

%N Binary "exponentiation" without carries: {0..y}^{0..x}, where y (column index) is binary encoding of GF(2)-polynomial and x (row index) is the exponent.

%H Alois P. Heinz, <a href="/A048723/b048723.txt">Antidiagonals n = 0..150, flattened</a>

%F a(n) = Xpower( (n-((trinv(n)*(trinv(n)-1))/2)), (((trinv(n)-1)*(((1/2)*trinv(n))+1))-n) );

%e 1 0 0 0 0 0 0 0 0 ...

%e 1 1 1 1 1 1 1 1 1 ...

%e 1 2 4 8 16 32 64 128 256 ...

%e 1 3 5 15 17 51 85 255 257 ...

%e 1 4 16 64 256 1024 4096 16384 65536 ...

%p # Xmult and trinv have been given in A048720.

%p Xpower := proc(nn,mm) option remember; if(0 = mm) then RETURN(1); # By definition, also 0^0 = 1. else RETURN(Xmult(nn,Xpower(nn,mm-1))); fi; end;

%t trinv[n_] := Floor[(1 + Sqrt[1 + 8*n])/2];

%t Xmult[nn_, mm_] := Module[{n = nn, m = mm, s = 0}, While[n > 0, If[1 == Mod[n, 2], s = BitXor[s, m]]; n = Floor[n/2]; m = m*2]; s];

%t Xpower[nn_, mm_] := Xpower[nn, mm] = If[0 == mm, 1, Xmult[nn, Xpower[nn, mm - 1]]];

%t a[n_] := Xpower[n - (trinv[n]*(trinv[n] - 1))/2, (trinv[n] - 1)*((1/2)* trinv[n] + 1) - n];

%t Table[a[n], {n, 0, 65}] (* _Jean-François Alcover_, Mar 04 2016, adapted from Maple *)

%Y Cf. ordinary power table A004248 and A034369, A034373.

%Y Cf. A048710. Row 3: A001317, Row 5: A038183 (bisection of row 3), Row 7: A038184. Column 2: A000695, diagonal of A048720.

%Y Main diagonal: A048731.

%K nonn,tabl

%O 0,9

%A _Antti Karttunen_, Apr 26 1999