A051910 Triangle T(n,m) = Nim-product of n and m, read by rows, 0<=m<=n.
0, 0, 1, 0, 2, 3, 0, 3, 1, 2, 0, 4, 8, 12, 6, 0, 5, 10, 15, 2, 7, 0, 6, 11, 13, 14, 8, 5, 0, 7, 9, 14, 10, 13, 3, 4, 0, 8, 12, 4, 11, 3, 7, 15, 13, 0, 9, 14, 7, 15, 6, 1, 8, 5, 12, 0, 10, 15, 5, 3, 9, 12, 6, 1, 11, 14, 0, 11, 13, 6, 7, 12, 10, 1, 9, 2, 4, 15
Offset: 0
Examples
Triangle starts 0; 0, 1; 0, 2, 3; 0, 3, 1, 2; 0, 4, 8, 12, 6; 0, 5, 10, 15, 2, 7; 0, 6, 11, 13, 14, 8, 5; 0, 7, 9, 14, 10, 13, 3, 4; 0, 8, 12, 4, 11, 3, 7, 15, 13;
References
- E. R. Berlekamp, J. H. Conway and R. K. Guy, Winning Ways, Academic Press, NY, 2 vols., 1982, see p. 60.
- J. H. Conway, On Numbers and Games, Academic Press, p. 52.
Links
Programs
-
Maple
We continue from A003987: to compute a Nim-multiplication table using (a) an addition table AT := array(0..NA, 0..NA) and (b) a nimsum procedure for larger values; MT := array(0..N,0..N); for a from 0 to N do MT[a,0] := 0; MT[0,a] := 0; MT[a,1] := a; MT[1,a] := a; od: for a from 2 to N do for b from a to N do t1 := {}; for i from 0 to a-1 do for j from 0 to b-1 do u1 := MT[i,b]; u2 := MT[a,j]; if u1<=NA and u2<=NA then u12 := AT[u1,u2]; else u12 := nimsum(u1,u2); fi; u3 := MT[i,j]; if u12<=NA and u3<=NA then u4 := AT[u12,u3]; else u4 := nimsum(u12,u3); fi; t1 := { op(t1), u4}; #t1 := { op(t1), AT[ AT[ MT[i,b], MT[a,j] ], MT[i,j] ] }; od; od; t2 := sort(convert(t1,list)); j := nops(t2); for i from 1 to nops(t2) do if t2[i] <> i-1 then j := i-1; break; fi; od; MT[a,b] := j; MT[b,a] := j; od; od;