相同弦长的本原勾股数组数分布规律初探

  在《数论概论》中,关于本原勾股数组有这样一道练习题:

  题意为:对于本原勾股数组,当弦长 $c$ 取何值时,可以分解为多组本原勾股数 $(a_i,b_i)$。进一步,分析本原勾股数的组数 $\phi(c)$ 的分布规律。

  本文利用最基本的数论求解上述问题,不够严谨,仅为兴趣探讨。

1 本原勾股数组简介

  详见相关初等数论书籍,一般的,称最大公因数为1的勾股数组为本原勾股数组,即:当且仅当 $(a,b,c)=1$时,称勾股数组 $a,b,c$ 为一组本原勾股数组。
  本原勾股数组的勾股关系可用下式表示:

  式中,$s,t$ 为互质的奇数,并不妨令$s>t$。
  此外,观察表达式容易发现一些基本事实,例如 $2\mid b$,$c^2 \equiv 1mod(4)$ 等等。

2 问题的求解


2.1 一个引理

引理:对于奇素数 $p$,当且仅当$p\equiv 1mod(4)$时,$p$可以唯一的分解为两个整数的平方和。即 $p=u^2+v^2$

  该引理可以分为两个部分进行证明,一个部分是$p\equiv 1mod(4)$与$p$可分解的充要性,另一个是 $p$ 分解为两数平方和的唯一性
  关于前者充要性,其必要性是显然的,充分性常用二次剩余结合费马下降法证明。($(\frac{-1}{p})=1$)
  对于后者唯一性,不同参考书目中也有相关证明,本文推导的唯一性证明如下:

  假设素数 $p$ 可以分解成两组不同的整数的平方和,即:

  上式中不妨设 $u_1>u_2>v_2>v_1>0$,那么有(1)式为:

  将(1)中平方项因子提取相乘构造$M$,可以发现:

  由初等不等式知 $(u_2^2v_2^2-u_1^2v_1^2)>0$

  又 $\because$ $p$ 是素数,所以有(2)式为:

  又由(1)可知:

  对比(2)、(3)式可知:

  以上两式都可以得到 $u_1=u_2, v_1=v_2$。至此素数 $p$ 分解的唯一性得证。

2.2 $c$ 的规律


  前已说明 $c$ 是奇数,现在将 $c$ 质因数分解:

  上式中 $p_i\equiv 1mod(4)$ ,$q_i\equiv -1mod(4)$ 为 $c$ 的质因子,$\alpha_i$,$\beta_i$ 为对应质因子的次数。
  对于本原勾股数组中 $c$ ,接下来说明两个结论(非严格论证,絮絮叨叨):

  • 本原勾股数组要求 $c$ 中没有 $q_i$项,$c$ 全部由 $\equiv 1mod(4)$的 $p_i$ 构成。
  • $c$ 能够分解出的本原勾股数组的组数 $\phi(c)=2^{n-1}$,和指数 $\alpha_i$ 无关。

  对于结论1,首先利用 $c=(s^{2}+t^{2})/2$,并对 $s,t$ 模8分析可知 $c\equiv 1mod(4)$( 这一点也可以用 $a=2mn;\ b=m^2-n^2;\ c=m^2+n^2$ 得到 )。所以对于非本原勾股数组要求 $2\mid \beta_i$,而对于本原勾股数组,从后面的分解构造过程可以发现 $\beta_i=0$。
  对于结论2,首先说明 $p_i^{\alpha_i}$能够分解的本原组数和 $p_i$相同:当${\alpha_i}\le2$ 时,结论显然;当${\alpha_i}>3$ 时,类似于引理的证明可知本原的分解唯一( 否则 $a,b$ 应同为 $p_i$ 的倍数 )。
  其次说明 $\alpha_i=1$ 时 $\phi(c)=2^{n-1}$ 与本原勾股数组的分解构造过程:

  由引理,对于模4余1的素数 $p_i$ 可令: $p_i=u_i^2+v_i^2$,
  设 $c_{k}=a_k^2+b_k^2$,且 $c_{1}=p_1=u_1^2+v_1^2$,则有(*)为:

  对比也就有:

  对于 $k=1 \sim n-1$ 重复上诉过程,最后得到 $c_{n}=a_n^2+b_n^2$ 。

  上述即为本文所述本原勾股数组分解构造过程,$p_i$的每一次相乘都有两种不同的 $(a_k,b_k)$,并且有 $(a_k,b_k)=1$,总共进行 $n-1$ 次乘法,故最后 $(a_n,b_n)$ 有 $\phi(c)=2^{n-1}$ 种可能。(通过构造过程可知$(a_{1\sim n},b_{1\sim n})$ 互不相同)

2.3 小尾巴与结论

小尾巴:
  对比 $c_{n}=a_n^2+b_n^2$ 和 $2c=(s^{2}+t^{2})$ 仍有区别,此时将 $2 = 1^2+1^2$ 带入(*)中即可得到

  上式中,$s,t$为大于0的奇数,且 $(s,t)=1$

结论:

  1. 能够分解出本原勾股数组的 $c$ 的形式为 $c=\prod_{i=1}^n p_i^{\alpha_i}$( 即$\beta_i=0$ )。
  2. 对于$c=\prod_{i=1}^n p_i^{\alpha_i}$,可以分解出的不同本原勾股数组的组数 $\phi(c)=2^{n-1}$。

说明:

  1. 本文中的部分结论只证明了充分性没有证明必要性。
  2. 本文证明只涉及初等代数及数论,稍显冗杂。
  3. markdown中公式表格的渲染还是弱了点。。另外整理时间较短,有点乱。

3 程序验证

  Matlab 验证,程序参下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
% num   为/phi(c)的取值范围,
% ia 为/phi(c)对应的最小c值。
%
% con_in 行号为c,第一列为对应的本原勾股数组组数
% 第二列开始,每两列分别为一组的s,t

clear
clc

maxc =100000; %搜索的长度
con_in = zeros(maxc,33); % 组数容量32(可以估算)

for c = 1:maxc
% s^2+t^2 = 2c
%s 的搜索区间为([sqrt(2c)]~[sqrt(c)])
lb = floor(sqrt(c));
rb = floor(sqrt(2*c));
for s = lb:rb
t = sqrt(2*c-s^2);
if (rem(t,2) == 1)&&(gcd(s,t) == 1)
con_in(c,1) = con_in(c,1)+1;
con_in(c,2*(con_in(c,1))) = s;
con_in(c,2*(con_in(c,1))+1) = t;
end
end
end

[num,ia,index] = unique(con_in(:,1));

  最后结果与前推导相符 :

本原勾股组数 最小的c $p_i$
1 5 5
2 65 5x13
4 1105 5x13x17
8 32045 5x13x17x29

4 参考

没啥参考

0%