直角数组
就是能组成直角三角形的三个整数组.
我不清楚这组数字应该被称做什么. 但是很多人称它为直角数组.
是不是这样比较好记.
例如3, 4, 5
5, 12, 13
11, 60, 61
等等.
各组每个数字分别扩大相同倍数.,也能组成直角三角形.
直角三角形的直角两边和斜边的关系, 最为特别.
x2 +y2 = z2 直角两边的平方和, 等于斜边的平方.
但除了最常见的 3,4,5. 5,12,13 及其倍数之外, 还有没有其他的数呢?
以前的数学家是用手去计算. 现在是电脑时代, 我们可以用电脑去做这个找寻的工作. 所以介绍一个找直角数的小程式, 而且是一式两款. 因为在香港是教 Pascal. 而目前最多人用, 而且已经转为免费的是 Turbo C.
所以各做了一个程式在下面:
如果你的电脑速度比较慢, 可以把 w=1000 的值减少, 例如改为200.
Turbo C
Pascal
/* find out x^2+y^2=z^2 */
main(){
long a,b,c,x,y,z;
long w=1000;
for(x=1;x<w;x++){
for(y=x+1;y<w;y++){
a=x*x+y*y;
z=x+1; c=1;
while(c){
b=z*z;
if(b==a){
printf("%ld %ld %ld
",x,y,z);
c=0;}
else if(b<a) z++;
else c=0;}}}
}
{ find out x^2+y^2=z^2 }
program sqare_int;
uses
WinCrt;
var
a,b,w,x,y,z:longint;
begin
w:=1000;
for x:=1 to w do
begin
for y:=x+1 to w do
begin
a:=x*x+y*y;
z:=x+1;
repeat
begin
b:=z*z;
if b=a then writeln(x,' ',y,' ',z);
z:=z+1
end
until b>a;
end
end
end.
从前有一位数学家提出了一个假设.
xn + yn = zn
如果 n>2, xy及z就没有全正整数的值.
当然, 这个假设已经被证实了. 但我们也可以用电脑尝试一下,
只要找出程式内红字的部份改为三连乘. 就变成 x3 +y3 = z3, 试看有没有答案. 同样的方法, 可以尝试四次方或任意次方的数值, 看看是否有奇迹会出现, 把这个假设再编写.