整点直角三角形
考虑平面直角坐标系上三个点A, B, C如果齐坐标均为非负整数,且三个点组成直角三角形
精彩绝伦我们称该直角三角形为整点直角三角形
现在问题是,对于这种直角三角形的斜边,设长为n,n为整数
那么,显然,n如果为偶数,且大于等于2,总能找到对应的整点直角三角形
那么对于任意的正整数n,(n >= 2)
1、是否均存在斜边长为n的整点直角三角形
2、如果存在,规定两直角边长不相等的为不同的形式,一共有多少形式? 根据四平方和定理,貌似对于任意n成立 1是肯定不行滴
2, 4, 5, 6是可以滴
3呢? 这种三角形,存在两种形式
1、是斜边不平行于X或者Y轴的
2、是斜边平行于X或者Y轴的 存在一个有限时间内的搜索算法
对n搜索(x, y)的三点组合保证
$0 <= x <= n, 0 <= y <= n$
然后
假设不共线A, B, C三点坐标是
$(X_A, Y_A), (X_B, Y_B), (X_C, Y_C)$
令$L_2(AB) = (X_A - X_B)^2 + (Y_A - Y_B)^2$
同样定义$L_2(AC), L_2(BC)$
对$L_2(AB), L_2(AC), L_2(BC)$按照从小到大排序得到序列$l_1, l_2, l_3$
如果$l_1 + l_2 = l_3$则得到符合本题的一个解 3无解。
我是回答第一问一般的情况,对于任意整数n,n>=4,均存在斜边为n的整点直角三角形,依据是:
四平方和定理
或者是,两个四元数的模的积等于积的模 :loveliness:
好像不能简单的用那个定理呀 7# 无心人
的确,完整的是这样的:
a^2+b^2+c^2+d^2=n
ac+bd=0 本帖最后由 wayne 于 2010-6-10 11:57 编辑
补充完整:
问题就是找下面方程的整数解的个数:
a^2+b^2+c^2+d^2=n^2
ac+bd=0
(a^2+b^2)(c^2+d^2)!=0
a<=b
c<=d
n=4,有4组
n=5,有12组
n=6,有4组
n=7,无解
n=8,有4组
n=9,无解
n=10,有36组 攒一下Haskell程序
let l2 (xa, ya) (xb, yb) = (xa - xb)^2 + (ya - yb)^2
let p n = [(x, y)|x<-, y<-]
let p3 n = [(a, b, c, sort )|a<-p n, b<-p
n, c<-p n, a/=b, b/=c, c/=a]
let p31 n = filter (\(a, b, c, ) -> (l3 == n^2) && (l1
+ l2 == l3)) (p3 n)