2022.12.17 闲话
基本内容
整数三元组 \((a,b,c)\) 是勾股数当且仅当 \(a^2+b^2=c^2\) .
本原勾股数
若勾股数 \((a,b,c)\) 满足 \(a\perp b\),则称其为一组本原勾股数,此时显然有 \(a,b,c\) 两两互素 .
因为奇数的平方一定模 4 余 1,偶数的平方一定模 4 余 0,于是对于勾股数 \((a,b,c)\),\(a,b\) 中至少有一个偶数 .
本原勾股数定理
所有满足 \(2\mid y\) 的本原勾股数 \((x,y,z)\) 可以被整数 \((a,b)\) 表出,其中 \(a>b>0\),\(a\perp b\) 且 \(a,b\) 奇偶性不同 .
表示方式:
\[\begin{aligned}x&=a^2-b^2\\y&=2ab\\z&=a^2+b^2\end{aligned} \]
证明非常简单就不说了 .
Problem 1
给一个正整数 \(n\),表出正整数 \(m\) 的数量,使得能 \((n,m)\) 通过本原勾股数定理构造出一组勾股数 .
正整数 \(m\) 的数量记做 \(\delta_{\sf P}(n)\) .
显然可得
分奇偶性讨论可以得到
勾股数和本原勾股数计数
Problem 2
给一个正整数 \(n\),求斜边长不大于 \(n\) 的勾股数和本原勾股数个数 .
考虑一个暴力:
从 \(1\dots \sqrt n\) 枚举整数 \(a\),然后从 \(a\dots\sqrt{n-a^2}\) 枚举 \(b\),既可求出答案 .
这个算法的时间复杂度一定不大于满足条件的勾股数数量,这样的勾股数其实不是很多,假设斜边根号的余数是均匀的,可以认为勾股数个数和 \(n\) 是同量级的,所以复杂度并不是很高 .
高斯整数
二次整数
二次整数环就是 \(\mathbb Z[\sqrt d]\),其中 \(d\) 是整数 .
或者说二次整数就是首一整系数二次多项式的根 .
二次整数性质其实不咋好……目前的一些结果:
\(d\) / 性质 | Eucild 整环 | 主理想整环 | 唯一分解整环 |
---|---|---|---|
虚 | \(-1,-2,-3,-7,-11\) | \(-1,-2,-3,-7,-11,-19,-43,-67,-163\) | \(-1,-2,-3,-7,-11,-19,-43,-67,-163\) |
实 | \(2,3,5,6,7,11,13,17,19,21,29,33,37,41,57,73\) | open | open |
唯一分解整环后面就叫 UFD 了 .
高斯整数就是 \(d=-1\) 情况 .
二平方数拆分
推流 joke3579 的高斯整数社论:link .
高斯整数环也就是 \(\mathbb Z[\mathrm i]\),查表可得它是 UFD .
整环上存在逆元的元素称为单位,可以得到 \(\mathbb Z[\mathrm i]\) 上的单位只有四个:\(1,-1,\mathrm i,-\mathrm i\) .
高斯素数的形式:
- \(1+\mathrm i\) .
- \(4k+1\) 型素数:拆成两个共轭高斯素数(\(4k+1\) 型素数必然可以表成两数平方和).
- \(4k+3\) 型素数:还是素数 .
令 \(R(n)\) 为将 \(n\) 分成两平方数之和的方案数 .
Lemma
令整数 \(n\) 的素因数分解形式为:
\[n=2^t\prod_{i=1}^rp_i^{e_i}\prod_{i=1}^sq_i^{f_i} \]其中 \(p_i\) 是模 \(4\) 余 \(1\) 的素数,\(q_i\) 是模 \(4\) 余 \(3\) 的素数 .
则
\[R(n)=\begin{cases}\displaystyle4\prod_{i=1}^r(e_i+1)&\forall i,2\mid f_i\\0&\text{otherwise.}\end{cases} \]
注意到一个方案 \(n=a^2+b^2\) 就是 \(n=(a+b\mathrm i)(a-b\mathrm i)\) .
观察可得素因数分解形式可写为
如果 \(f_i\) 有奇数的就匹配不上了答案显然是 \(0\),以下考虑 \(f_i\) 都是偶数的情况 .
只需要考虑 \(\{p\}\) 对 \(a+b\mathrm i\) 和 \(a-b\mathrm i\) 的贡献,于是就产生
的贡献 .
因为有 \(4\) 个单位的方向,所以答案再乘 \(4\) 即可,证毕 .
勒让德两平方数之和定理
\[R(n)=4\left(\sum_{d>0}([4d+1\mid n]-[4d+3\mid n])\right) \]
令整数 \(n\) 的素因数分解形式为:
则根据 Lemma,只需验证
令 \(\displaystyle d_k=\sum_{i>0}[4i+k\mid n]\) .
考虑对 \(s\) 归纳(考虑 \(4k+3\) 型素因子的一个前缀),则:
- \(s=0\) 时,显然成立 .
- \(s>0\) 时,对于每个 \((q_i,f_i)\) 分别讨论:
- 若 \(2\nmid f_i\),显然 \(d_1=d_3\),命题成立 .
- 若 \(2\mid f_i\),奇偶次幂的因子被均分在 \(d_1,d_3\) 中,于是相当于变成了大小为 \(\dfrac{n}{q_i^{f_i}}\) 的子问题,根据归纳假设,命题成立 .
高斯整数的一些应用:
Problem 3
给一个正整数 \(r\),问圆心为 \((0,0)\),半径为 \(r\) 的圆上有多少个整点 .
问题即为找整数二元组 \((x,y)\) 的数量,使得 \(x^2+y^2=r^2\) .
根据勒让德两平方数之和定理,将 \(r^2\) 分解质因数即可 .
Problem 4
给一个正整数 \(n\),求斜边长不大于 \(n\) 的所有勾股数 .
在勒让德两平方数之和定理的过程中即可输出所有勾股数,对于勾股数 \((a,b,c)\),枚举 \(c\),施 pollard-rho 即可做到 \(\Theta(n^{5/4})\) .
用 Problem 2 的手法可以 \(O(n)\) 左右 .
如果是计数也一样 .
\(\mathbb Z[\mathrm i]\) 上的 GCD 和因数分解
查表可得 \(\mathbb Z[\mathrm i]\) 是 Euclid 整环 .
于是 \(\mathbb Z[\mathrm i]\) 的 GCD 可以通过辗转相除法求出 .
因数分解也比较平凡,因为范数是积性的,所以用某些方法先分解欲分解的高斯整数的范数,可以得到答案素因子的范数的几个可能值 .
知道范数求原数用高斯素数的形式即可 \(\Theta(1)\),接下来试除即可 .
淡化比较浓的东西
代数曲线上的有理点
所有勾股数都可以对应到单位圆上的有理点上 .
即若 \(\left(\dfrac ab\right)^2+\left(\dfrac bc\right)^2=1\) 且 \(a,b,c\) 是正整数时,有 \(a^2+b^2=c^2\) .
考虑过点 \((-1,0)\) 引一条斜率为有理数 \(t\) 的直线,交圆心为原点的单位圆于点 \((x,y)\),则可以得到如下图所示的结果:
可以发现直线与单位圆交于另一有理点,由此可以知道可以用 \(t\) 来参数化单位圆上的所有有理点 .
根据已知信息可以得到
代入可知
\(x=-1\) 是平凡解(\((x,y)\) 为点 \((-1,0)\)),于是下面令 \(x\neq -1\),则
解得 \(x=\dfrac{1-t^2}{1+t^2}\),从而可以得到 \(y=\dfrac{2t}{1+t^2}\) .
于是直线 \(y=t(x+1)\) 与单位圆的第二个交点为 \(\left(\dfrac{1-t^2}{1+t^2},\dfrac{2t}{1+t^2}\right)\),它是关于 \(t\) 的有理函数,所以它是有理点的当且仅当 \(t\) 是有理数 .
于是我们就得到单位圆上的所有有理点,即 \((-1,0)\) 和所有形如 \(\left(\dfrac{1-t^2}{1+t^2},\dfrac{2t}{1+t^2}\right)\) 的点 . 令 \(t=\dfrac mn\),其中 \(m,n\) 是正整数,则可以得到一个关于所有勾股数的表达式 .
代入 \(t=\dfrac mn\) 可得有理点 \(\left(\dfrac{m^2-n^2}{m^2+n^2},\dfrac{2mn}{m^2+n^2}\right)\),则根据前面的讨论可得 \((m^2-n^2,2mn,m^2+n^2)\) 为一组勾股数 .
这给出了一个对代数曲线有理参数化的一个方法 . 一个例子:椭圆 \(x^2+xy+y^2=1\) 上的所有有理点为 \((-1,1)\) 和所有形如 \(\left(\dfrac{1-t^2}{t^2+t+1},\dfrac{t^2+2t}{t^2+t+1}\right)\) 的点,其中 \(t\) 是有理数 .
二平方和
根据先前的讨论,知道一个正整数可表示为两个正整数的平方和,当且仅当其所有形如 \(4k+3\) 形式的素因子在 \(n\) 中的次幂均为偶数 .
这一部分懒得写了,nmd
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/16988998.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ