这个问题很有意思!很多人小时候在学数学的时候都会接触到勾股定理,也就是直角三角形两条直角边(我们通常叫它们a和b)的平方和等于斜边(我们叫它c)的平方,写成公式就是 $a^2 + b^2 = c^2$。
我们把满足这个等式的三个正整数a, b, c称为一组勾股数。比如,最经典的一组勾股数就是3、4、5,因为 $3^2 + 4^2 = 9 + 16 = 25$,而 $5^2 = 25$,它们正好相等。
那么,勾股数到底有多少组呢?是数不清的,还是到某个地方就没了呢?答案是:勾股数有无限多组!
听到这个答案你可能会有点疑惑,毕竟我们熟悉的就那几组,比如3、4、5,5、12、13,8、15、17,7、24、25…… 感觉好像也不是特别多。但数学的魅力就在于,一旦我们找到了一个规律,这个规律就能生成出无穷无尽的例子来。
我们怎么证明它有无限多组呢?其实有很多方法,我来给你介绍一种相对容易理解的思路,这要归功于古希腊的数学家欧几里得。
欧几里得当年就研究过勾股数,并且给出了一个生成勾股数的公式。这个公式是这样的:
假设我们取任意两个不相等的正整数 m 和 n,并且 m 大于 n。然后我们用它们来计算:
$a = m^2 n^2$
$b = 2mn$
$c = m^2 + n^2$
你会发现,用这三个式子算出来的 a, b, c 一定是一组勾股数!我们来验证一下:
$a^2 + b^2 = (m^2 n^2)^2 + (2mn)^2$
$= (m^4 2m^2n^2 + n^4) + (4m^2n^2)$
$= m^4 + 2m^2n^2 + n^4$
$= (m^2 + n^2)^2$
而 $c^2 = (m^2 + n^2)^2$
看,等式 $a^2 + b^2 = c^2$ 成立了!所以,只要我们能够找到不同的 m 和 n,就能生成出不同的勾股数。
现在关键来了:我们能找到无限多对不同的 m 和 n 吗? 当然可以!
比如,我们选 m=2, n=1。
$a = 2^2 1^2 = 4 1 = 3$
$b = 2 2 1 = 4$
$c = 2^2 + 1^2 = 4 + 1 = 5$
这就得到了我们的第一组勾股数:(3, 4, 5)。
我们再换一组,m=3, n=2。
$a = 3^2 2^2 = 9 4 = 5$
$b = 2 3 2 = 12$
$c = 3^2 + 2^2 = 9 + 4 = 13$
得到了另一组:(5, 12, 13)。
再来一组,m=4, n=1。
$a = 4^2 1^2 = 16 1 = 15$
$b = 2 4 1 = 8$
$c = 4^2 + 1^2 = 16 + 1 = 17$
得到了 (8, 15, 17)。
你可能会说,这几组都是用不同的 m 和 n 得到的。但问题是,我们能不断地选择新的 m 和 n 吗?答案是肯定的。
我们可以不断地增加 m 的值,同时保持 n 的值不变(比如 n=1),或者同时改变 m 和 n。
如果m不断增大,n=1:
m=2, n=1 > (3, 4, 5)
m=3, n=1 > (8, 6, 10) (注意这个不是最简勾股数,可以约去2变成(3,4,5),但本身也是一组)
m=4, n=1 > (15, 8, 17)
m=5, n=1 > (24, 10, 26) > (12, 5, 13)
...
我们也可以选择一些特别的组合,比如让 m 和 n 互质且一个奇一个偶,这样生成的勾股数就是最简的(没有公约数)。但即使不这样,只要 m 和 n 不同,我们总能生成一组勾股数。
更关键的是,我们发现,即使使用不同的 m 和 n,也可能生成出“倍数关系”的勾股数。比如上面那个 (6, 8, 10),就是 (3, 4, 5) 各乘以了2。
欧几里得的这个公式,再加上一个重要的补充:任何一组勾股数,都可以由这个公式生成的“本原勾股数”(即 a, b, c 互质的勾股数)乘以一个整数得到。
这就意味着,我们只需要证明通过这个公式能生成无限多组“本原勾股数”,那就间接证明了所有勾股数也是无限多组的。
而要生成无限多组本原勾股数,只需要保证 m 和 n 是互质的,并且一个为奇数,另一个为偶数。我们很容易就能找到无数对满足这个条件的 (m, n)。
举个例子,我们可以选择 m 为一个大素数,n=2(如果m是奇素数)。
比如 m = 101 (一个素数), n = 2 (一个偶数)。
$a = 101^2 2^2 = 10201 4 = 10197$
$b = 2 101 2 = 404$
$c = 101^2 + 2^2 = 10201 + 4 = 10205$
这就又是一组勾股数 (10197, 404, 10205)。
我们只要能不断地找到新的满足条件的 (m, n) 对,就能不断地生成新的勾股数。因为正整数本身就是无限多的,我们总有无穷无尽的方法去组合它们,来满足 m > n,并且选择不同的 m 和 n 值。
所以,结论很明确:勾股数是无限多组的。 从数学的角度看,我们找到的这个生成公式,就像一个“勾股数制造机”,只要我们不断地给它输入不同的指令(不同的 m 和 n),它就能源源不断地吐出新的勾股数来。