搜索
科学网 群组 数学科学 勾股数组的新计算方法----重新发帖
查看: 290|回复: 2
go

[原创] 勾股数组的新计算方法----重新发帖

Rank: 1

发表于 2017-3-20 17:59 |显示全部帖子
5金币
本帖最后由 y2zfu 于 2017-3-20 18:06 编辑

我前两天发过这篇帖子,由于系统不支持平方符号,因此我作了一些改动重新发了出来,跟大家一起探讨。

对于任意三个正整数x、y、z,如果满足x*x+y*y=z*z,那么xyz可以通过下面方程组求得:

x=m
y=(m*m/k-k)/2
z=(m*m/k+k)/2

由于xyz都是正整数,因此m和k必须满足如下条件:

① m为大于2的整数;
② k为m*m的因子;
③ k<m;
④ k与m*m/k的奇偶性必须相同。

如果规定k<(√2-1)m,那么x<y,也就是说x为最小值,这样可以避免数据重复。

经验证,上式是成立的。只要确定了一个符合条件的自然数m和因子k,就能计算出一组勾股数。只要将m*m的符合条件的因子找出来就能计算出所有m参与的勾股数组。

例如:84*84的因子有1,2,3,4,6,7,8,9,12,14,16,18,21,24,28,36,42,48,49,56,63,72,84,98,112,126,144,147,168,196,252,294,336,392,441,504,588,784,882,1008,1176,1764,2352,3528,7056
取其中小于84的部分,再去掉奇因子和16,48两个含有16的因子,得到13个符合条件的因子:
2,4,6,8,12,14,18,24,28,36,42,56,72
以这13个数为k值,即可计算出13组勾股数:
84,1763,1765(k=2)  84,880,884(k=4)  84,585,591(k=6)  84,437,445(k=8)  84,288,300(k=12)  84,245,259(k=14)  84,187,205(k=18)  
84,135,159(k=24)  84,112,140(k=28)  84,80,116(k=36)  84,63,105(k=42)  84,35,91(k=56)  84,13,85(k=72)  

我对有限数据进行了验证,还没发现上面的方程组计算不出来的勾股数组,欢迎大家参与验证,谁第一个找出来奖励5金币。
目前数学界用于计算勾股数的工具是丢番图公式,用丢番图的方程组其实是存在很多盲区的,比如上面这些跟84相关的勾股数组用丢番图公式只能计算出其中六个:
m=42,n=1  1763,84,1765
m=22,n=20  84,880,884
m=21,n=2  437,84,445
m=14,n=3  187,84,205
m=10,n=4  84,80,116
m=7,n=6   13,84,85


由上述方程组,我们还能得出如下推论:

推论一:
对于任意大于2的奇数m,必然存在两个连续的自然数能与m组成勾股数组。这两个数就是(m*m-1)/2和(m*m+1)/2。
如:3,4,5;5,12,13 ;7,24,25 ;9,40,41 ;11,60,61 ……

推论二:
对于任意大于3的偶数m,必然存在两个连续的奇数或连续的偶数能与m组成勾股数组。这两个数是m*m/4±1。
如:6,8,10;8,15,17;10,24,26;12,35,37;……

推论三:
一个正整数所能参与的勾股数组的个数与这个数的因子个数是有关系的,质数在不是最大值的情况下只能参与一组勾股数。

推论四:
勾股数组中的最大数减去另一个数,必然是剩下一个数的平方的因子。
(这个也可以直接用因式分解的方法证明。)

Rank: 1

发表于 2017-3-21 12:25 |显示全部帖子
说明一下,上面方程组计算出来的数据不包含m作为最大值的情况。

Rank: 1

发表于 2017-3-22 12:27 |显示全部帖子
有些勾股数最大数减去其中一个较小的数是一个自然数的平方,减去另一个数又是某个自然数的平方的两倍。而丢番图公式就只能计算出这种勾股数,随着数据的增大,你会发现这只是很少一部分而已。
你需要登录后才可以回帖 登录 | 注册
验证码 换一个

Archiver|科学网 ( 京ICP备14006957 )

GMT+8, 2017-5-1 04:50

Powered by ScienceNet.cn

Copyright © 2007-2017 中国科学报社