Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Number of right triangles, distinct up to congruence, on an n X n grid (or geoboard).
5

%I #11 Mar 28 2014 23:35:22

%S 0,1,4,9,17,26,39,53,71,91,114,136,169,197,231,267,310,346,397,437,

%T 492,548,606,654,729,791,858,928,1007,1071,1173,1241,1333,1423,1509,

%U 1600,1728,1814,1912,2015,2144

%N Number of right triangles, distinct up to congruence, on an n X n grid (or geoboard).

%e For n=3 the four right triangles are:

%e **. *.* *.* .*.

%e *.. *.. ... *..

%e ... ... *.. .*.

%p Triangles:=proc(n) local TriangleSet,i,j,k,l,A,B,C; TriangleSet:={}: for i from 0 to n do for j from 0 to n do for k from 0 to n do for l from 0 to n do A:=i^2+j^2: B:=k^2+l^2: C:=(i-k)^2+(j-l)^2: if A^2+B^2+C^2<>2*(A*B+B*C+C*A) then TriangleSet:={op(TriangleSet),sort([sqrt(A),sqrt(B),sqrt(C)])}: fi: od: od: od: od: return(TriangleSet); end:

%p IsRectangularTriangle:=proc(T) if T[1]^2+T[2]^2=T[3]^2 or T[1]^2+T[3]^2=T[2]^2 or T[2]^2+T[3]^2=T[1]^2 then true else false fi: end:

%p a:=proc(n) local TriangleSet,RectangularTriangleSet,i; TriangleSet:=Triangles(n): RectangularTriangleSet:={}: for i from 1 to nops(TriangleSet) do if IsRectangularTriangle(TriangleSet[i]) then RectangularTriangleSet:={op(RectangularTriangleSet),TriangleSet[i]} fi: od: return(nops(RectangularTriangleSet)); end:

%Y Cf. A028419, A077435.

%K nonn,more

%O 1,3

%A _Martin Renner_, May 03 2011

%E a(21) through a(40) from _Martin Renner_, May 08 2011