关于勾股数组
勾股定理
首先是勾股定理:
a
2
+
b
2
=
c
2
a^2 + b^2 = c^2
a2+b2=c2
勾股数组的定义
然后是勾股数组:一个正整数三元组:
(
a
,
b
,
c
)
(a, b, c)
(a,b,c),满足
a
2
+
b
2
=
c
2
a^2 + b^2 = c^2
a2+b2=c2,那么这个三元组就是一个勾股数组 (是有够简单的了)。非常简单,是不是?但是如果你想 装逼 让别人觉得你很厉害的话,那么你可以把这玩意儿叫做 “毕达哥拉斯三元组” (逼格瞬间就上来了有没有 qwq)。
我们来举几个例子:
a | b | c |
---|---|---|
3 | 4 | 5 |
5 | 12 | 13 |
6 | 8 | 10 |
7 | 24 | 25 |
8 | 15 | 17 |
⋮ \vdots ⋮ | ⋮ \vdots ⋮ | ⋮ \vdots ⋮ |
其中我们看着
(
3
,
4
,
5
)
(3, 4, 5)
(3,4,5) 和
(
6
,
8
,
10
)
(6, 8, 10)
(6,8,10) 这两个 毕达哥拉斯三元组 ,我们会发现这俩玩意儿就是每个对应的数差了一倍 (为什么要说这个呢,因为要强行引出本原勾股数组)。然后根据我们在初中学过的数学知识,一个勾股数组中的每个数都乘上一个整数然后得到一个新的三元组,这个三元组显然也是勾股数组。
本原勾股数组
于是,我们假设有一个勾股数组 ( a , b , c ) (a, b, c) (a,b,c) ,它当中的三个数满足 g c d ( a , b , c ) = 1 gcd(a, b, c) = 1 gcd(a,b,c)=1,那么就称这个勾股数组为 本原勾股数组。像这样,我们如果找到了一个本原勾股数组我们就可以对这个数组的每个数乘上一个数 k k k 就能得到无穷个勾股数组。
还是来举几个例子 (其实就是把上面那个表里面的 (6, 8, 10) 去掉剩下的部分):
a | b | c |
---|---|---|
3 | 4 | 5 |
5 | 12 | 13 |
7 | 24 | 25 |
8 | 15 | 17 |
⋮ \vdots ⋮ | ⋮ \vdots ⋮ | ⋮ \vdots ⋮ |
然后我们会发现一个比较好玩的性质:一个本原勾股数组 ( a , b , c ) (a, b, c) (a,b,c) 的前两个数 a a a 和 b b b 一定是一个奇数,一个偶数。我们现在来看看怎么证明这个性质:
反证法,假设
a
,
b
a, b
a,b 都是偶数,那么
c
=
a
2
+
b
2
c = \sqrt{a^2 + b^2}
c=a2+b2 一定是一个偶数,那么
a
,
b
,
c
a, b, c
a,b,c 一定有一个公因数 2,那就不满足
(
a
,
b
,
c
)
(a, b, c)
(a,b,c) 是一个本原勾股数组的定义了。所以
a
,
b
a, b
a,b 不可能同为偶数。再假设
a
,
b
a, b
a,b 都是奇数,那么
c
=
a
2
+
b
2
c = \sqrt{a^2 + b^2}
c=a2+b2 一定也是一个偶数。这里就不那么显然了,所以我们这样处理:设
a
=
2
x
a = 2x
a=2x,
b
=
2
y
b = 2y
b=2y,
c
=
2
z
+
1
c = 2z +1
c=2z+1。其中
x
,
y
,
z
∈
N
+
x, y, z \in N_+
x,y,z∈N+,那么:
a
2
+
b
2
2
=
(
2
x
)
2
+
(
2
y
)
2
2
=
2
x
2
+
2
y
2
c
2
2
=
(
2
z
+
1
)
2
2
=
4
z
2
+
4
z
+
1
2
\begin{aligned} & \frac{a^2 + b^2}{2} = \frac{(2x)^2 + (2y)^2}{2} = 2x^2 + 2y^2 \\ & \frac{c^2}{2} = \frac{(2z+1)^2}{2} = \frac{4z^2 + 4z + 1}{2} \end{aligned}
2a2+b2=2(2x)2+(2y)2=2x2+2y22c2=2(2z+1)2=24z2+4z+1
这样写出来就很显然能看出来矛盾了,如果 a 2 + b 2 = c 2 a^2 + b^2 = c^2 a2+b2=c2,那么 2 x 2 + 2 y 2 = 4 z 2 + 4 z + 1 2 z , y , z , ∈ N + 2x^2 + 2y^2 = \frac{4z^2 + 4z + 1}{2} \quad z, y, z, \in N_+ 2x2+2y2=24z2+4z+1z,y,z,∈N+,这显然是矛盾的,因为等号左边显然是一个偶数,等号的右边显然不是一个整数。所以 a , b a, b a,b 不可能同时为奇数。
怎样构造勾股数组
几个小性质
从上面的叙述中我们可以知道,只要我们找到本原勾股数组就能构造出其他所有的勾股数组,所以我们考虑如何构造本原勾股数组。
在构造本原勾股数组之前,我们再来看看通过我们上面推导出来的性质能不能推导出其他的一些性质。我们来考虑一个本原勾股数组
(
a
,
b
,
c
)
(a, b, c)
(a,b,c),假设
a
a
a 和
c
c
c 是奇数,
b
b
b 是偶数,根据定义:
a
2
+
b
2
=
c
2
→
a
2
=
c
2
−
b
2
=
(
c
+
b
)
(
c
−
b
)
a^2 + b^2 = c^2 \rightarrow a^2 = c^2 - b^2 = (c+b)(c-b)
a2+b2=c2→a2=c2−b2=(c+b)(c−b)
我们会发现 g c d ( ( c + b ) , ( c − b ) ) = 1 gcd((c+b), (c-b)) = 1 gcd((c+b),(c−b))=1,我们来考虑证明一下这个性质:
设
d
∣
(
c
+
b
)
∧
d
∣
(
c
−
b
)
d \mid (c+b) \wedge d \mid (c-b)
d∣(c+b)∧d∣(c−b)
这样我们就有:
d
∣
(
c
+
b
+
c
−
b
)
→
d
∣
2
c
d
∣
(
c
+
b
−
c
+
b
)
→
d
∣
2
b
\begin{aligned} & d \mid (c+b+c-b) \rightarrow d \mid 2c \\ & d \mid (c+b-c+b) \rightarrow d \mid 2b \end{aligned}
d∣(c+b+c−b)→d∣2cd∣(c+b−c+b)→d∣2b
我们又有:
d
2
∣
(
c
+
b
)
(
c
−
b
)
→
d
2
∣
a
2
也
就
是
说
d
∣
a
\begin{aligned} & d^2 \mid (c+b)(c-b) \rightarrow d^2 \mid a^2 \\ & 也就是说 \quad d \mid a \end{aligned}
d2∣(c+b)(c−b)→d2∣a2也就是说d∣a
因为
c
c
c 是奇数
b
b
b 是偶数,所以:
c
≡
0
(
m
o
d
2
)
∧
b
≡
1
(
m
o
d
2
)
→
(
c
+
b
)
≡
1
(
m
o
d
2
)
c \equiv 0 \pmod 2 \wedge b \equiv 1\pmod 2 \rightarrow (c+b) \equiv 1\pmod 2
c≡0(mod2)∧b≡1(mod2)→(c+b)≡1(mod2)
又因为
d
∣
(
c
+
b
)
d \mid (c+b)
d∣(c+b),所以
d
d
d 不可能是偶数。又因为
d
∣
2
c
∧
d
∣
2
b
d \mid 2c \wedge d \mid 2b
d∣2c∧d∣2b,所以:
d
∣
b
∧
d
∣
c
d \mid b \wedge d \mid c
d∣b∧d∣c
然后:
∵
(
d
∣
a
∧
d
∣
b
∧
d
∣
c
)
∧
g
c
d
(
a
,
b
,
c
)
=
1
∴
d
=
1
\begin{aligned} & \because (d \mid a \wedge d \mid b \wedge d \mid c) \wedge gcd(a, b, c) = 1 \\ & \therefore d = 1 \end{aligned}
∵(d∣a∧d∣b∧d∣c)∧gcd(a,b,c)=1∴d=1
我们也就证完了。
但是我们肯定不能满足与这个性质,我们的好奇心一定会要求我们来推导出更多的结论 qwq。所以我们继续推导,我们知道任何一个大于 1 的整数都可以表示成这样:
a
=
∏
i
=
1
n
p
i
α
i
a = \prod_{i=1}^n p_i^{\alpha_i}
a=i=1∏npiαi
如果对一个完全平方数
a
2
a^2
a2 进行质因数分解,我们就能得到:
a
2
=
∏
i
=
1
n
p
i
k
i
=
∏
i
=
1
n
p
i
k
i
′
2
a^2 = \prod_{i=1}^n pi^{k_i} = \prod_{i=1}^{n} p_i^{{k'_i}^2}
a2=i=1∏npiki=i=1∏npiki′2
所以我们知道,对于
a
2
a^2
a2 的所有
k
i
k_i
ki,都有:
k
i
≡
0
(
m
o
d
2
)
k_i \equiv 0 \pmod 2
ki≡0(mod2)
又因为 g c d ( ( c + b ) , ( c − b ) ) = 1 gcd((c+b), (c-b)) = 1 gcd((c+b),(c−b))=1,所以 p 1 ∣ ( c + b ) , p 1 ∣ ( c − b ) p_1 \mid (c+b), p_1 \mid (c-b) p1∣(c+b),p1∣(c−b) 是不成立的。然后让我们来想象一下,我们能不能把 a 2 a^2 a2 拆成两个没有公因数的数,根据我们上面的证明,就很显然,这两个数就是 ( c + b ) (c+b) (c+b) 和 ( c − b ) (c-b) (c−b),然后我们考虑如何得到这两个数,我们举个例子,比如说我们拆 1 5 2 = 3 2 × 5 2 15^2 = 3^2 \times 5^2 152=32×52:
要注意的是,我们讨论的 a , b , c ∈ N + a, b, c \in N_+ a,b,c∈N+,所以我们的拆分要满足 c + b > c − b c+b > c-b c+b>c−b。所以很显然的一种拆分的方法就是选一些小的质数的平方分给 c − b c-b c−b,在选一些稍微大一点的质数的平方给 c + b c+b c+b。就比如 a 2 = 1 5 2 a^2 = 15^2 a2=152 的拆分就可以拆成 b + c = 5 2 = 25 b+c = 5^2 = 25 b+c=52=25, b − c = 3 2 = 9 b-c = 3^2 = 9 b−c=32=9。
按照这种拆法,那么 c + b c+b c+b 和 c − b c-b c−b 一定就都是完全平方数,这也是一个重要的结论。
勾股数组定理
根据我们上面的推导,我们设
s
2
=
c
+
b
s^2 = c+b
s2=c+b,
t
2
=
c
−
b
t^2 = c-b
t2=c−b,其中
s
>
t
s > t
s>t。然后顺理成章的,我们就得到了:
b
=
s
2
−
t
2
2
c
=
s
2
+
t
2
2
\begin{aligned} & b = \frac{s^2 - t^2}{2}\\ & c = \frac{s^2 + t^2}{2} \end{aligned}
b=2s2−t2c=2s2+t2
然后我们就总结出了勾股数组定理:每一个本原勾股数组
(
a
,
b
,
c
)
(a, b, c)
(a,b,c),其中
a
a
a 是奇数,
b
b
b 是偶数,我们都能得到以下的公式:
a
=
s
t
,
b
=
s
2
−
t
2
2
,
c
=
s
2
+
t
2
2
a = st,b = \frac{s^2 - t^2}{2},c = \frac{s^2 + t^2}{2}
a=st,b=2s2−t2,c=2s2+t2
然后我们就惊奇的发现,我们已经会构造一组本原勾股数组了,就像这样,先找到一组 ( s , t ) (s, t) (s,t),然后把勾股数组定理里面的公式一次代入就能带到一组本原勾股数组了。就比如说 s = 3 , t = 1 s = 3, t = 1 s=3,t=1,那么我们就有: a = s t = 3 a = st = 3 a=st=3, b = s 2 − t 2 2 = 4 b = \frac{s^2-t^2}{2} = 4 b=2s2−t2=4, c = s 2 + t 2 2 = 5 c = \frac{s^2 + t^2}{2} = 5 c=2s2+t2=5,我们就构造出来了 ( 3 , 4 , 5 ) (3, 4, 5) (3,4,5) 显然就是一组本原勾股数组的一个本原勾股数组。
然后… 就没有然后了,完结撒花!