_louhc
2018-12-29 19:08:40
我们大概老早就知道勾股定理,它大概就长这样:
嗯,的确够简单的。
而且我们清楚地知道它的一个基本应用——知道
对于不知道勾股定理的童鞋们,不了解没关系,因为这里没有三角形,也不是探讨怎么求第三边,我们只探讨勾股数组。
这里的
如果真的看不懂,可以先学习同余、约数、素数的知识。
什么事都得从定义开始。来看看百度百科教会我们什么。
一般地,若三角形三边长a,b,c都是正整数,且满足a,b的平方和等于c的平方,那么数组(a,b,c)称为勾股数组。勾股数组是人们为了解出满足勾股定理的不定方程的所有整数解而创造的概念。
嗯,够简单的。不过有些人总是喜欢把它弄得高大尚些,把它叫做“毕达哥拉斯三元组”,其实是一个玩意儿,只是后者听起来更加牛。这不必深究,知道它就是勾股数组即可。而勾股数组也就是把三个数a,b,c(
a | b | c |
---|---|---|
3 | 4 | 5 |
5 | 12 | 13 |
6 | 8 | 10 |
7 | 24 | 25 |
诶,(3,4,5)、(6,8,10)看着好像!emmm
实际上它们的本质都是勾三股四弦五 这样就不好玩了嘛)很明显,如果一个勾股数组中每个数同乘一个正整数,得到的三元组还是一个勾股数组。It's very easy.这里省略证明过程。
所以说,勾股数组有无穷个。这就不好玩了嘛,只要知道一组勾股数组,就可以推出inf个勾股数组。。。
最有意义的勾股数组,就是其他勾股数组
因此,我们引入本原勾股数组的概念。不过很遗憾,百度百科词条里没有。
本原勾股数组(简写为PPT)是一个三元组(a,b,c),其中a,b,c没有公因数,且满足
a^2+b^2=c^2 ——摘自Joseph H. Silverman《A Friendly Introduction To Number Theory》
给出一些本原勾股数组。
(3,4,5)(5,12,13)(8,15,17)(7,24,25)......
它有一些有趣的性质。如果你仔细观察,你可能会发现前两个数似乎总是一奇一偶。。。
这个命题是正确的,来看看如何证明。
当a、b均为偶数时,c必然为偶数,它显然不是一个本原勾股数组,a、b、c有公因数2。
当a、b均为奇数时,c必然为偶数,设
然后我们就可以通过
只要找出本原勾股数组,其它勾股数组都可以求出。如何找呢? 为了便于大家理解,这里写的详细些)
为了方便,我们认为本原勾股数组(a,b,c)中,a为奇数,b为偶数,c为奇数。
我们从这方面考虑。(c+b)与(c-b)不应该存在>1的公约数。
证明:
我们知道,任何一个大于1的正整数都可以表示成固定几个素数的积,也就是长这模样——
我们选取一些质数给(c+b),剩下的质数全部给(c-b)
嗯,这好像只有一种分法
大家可以自己再选几个数,动手尝试。我们可以发现,
来吧,冲向胜利!
我们设
我们把上面俩式子加一加、减一减——哇!
每个本原勾股数组(a,b,c)(其中a为奇数,b为偶数),都可从如下公式得出。
其中
当然,以上证明是不完整的。我们还要证明a、b、c没有公因数。
我们运用反证法,假设
我们假设质数
假设
由
若
所以,对于
综上所述,
QED.
我们会找本原勾股数组,自然找出了所有勾股数组。
不过,还有一种神奇的方法,已知
这里放个链接,里面讲的还是很不错的QAQ(肯定讲的比我好),强烈建议童鞋们去Have a look。
顺便切道紫题P2508 [HAOI2008]圆上的整点。
高斯整数(gaussian integer)是实数部分(实部)和虚数部分(虚部)都是整数的复数。也就是复平面中点集{a+bi|a,b 都是整数}。所有高斯整数组成了一个整环,写作Z。它是个不可以转成有序环的欧几里德整环,所以是唯一因子分解整环。 也就是在这个整环中,如同整数集一样,可以存在唯一因子分解定理。 ——摘自百度百科
奇素数p可以表示为两个正整数的平方和,当且仅当p是4k+1型的。并且在不考虑两个正整数顺序的情况下,这个表示方法唯一。——摘自上面链接的评论
奇质数能表示为两个平方数之和的充分必要条件是该质数被4除余1——摘自百度百科
由于费马平方和定理证明比较复杂,我找到的一些简单的证明都是片面或错误的,完全的证明似乎要分5步,请自行了解,这里不仔细讲。
在上面那个链接视频中提到XX的模,我的理解为XX与原点的距离)
很明显,以
怎么解决呢?这就用到前置知识中的费马平方和定理,不熟悉的童鞋可以再去看看。
我们把不能再分解的高斯整数称为“高斯素数”。事实上,高斯素数有3种:
根据费马平方和定理,一个4k+1型的素数可以分解成
如果一个数质因子中只有4k+1型的素数,像我们举例的25,那就好办了。
像这样,将它分解成若干高斯素数的乘积(很明显,这是唯一的),并将互为复共轭的一对高斯素数写两边,左边所有高斯素数的乘积与右边的乘积互为复共轭。要使左右乘积继续保持互为复共轭,只能交换一对互为复共轭的高斯素数的位置(这个不难理解)。我们可以这样考虑,对于相同的高斯素数(我指的是成对的),(就比如
这里感谢@GKxx 指出错别字QAQ)
4k+3型的素数已经是高斯素数,而且它的复共轭就是本身,因此,只能将它平均分配给左边和右边。如果某个这种素数有奇数个,不能平均分配给左右,那很遗憾,一个解也没有。
对于素数2,它能分解成两个高斯素数
来看看[HAOI2008]圆上的整点,因为这题中半径r为正整数,所以
#include<bits/stdc++.h>
using namespace std;
#define LL long long
LL R, N, ans(1);
int main(){
scanf( "%lld", &R ); N = R;
if ( R == 0 ){ printf( "1\n" ); return 0; }//点圆
while( R % 2 == 0 ) R >>= 1;//质因数2不会影响答案
for ( LL i = 3; i * i <= N; i += 2 ){
LL cnt(0);
while( R % i == 0 ) cnt++, R /= i;//数出i的幂
if ( i % 4 == 1 ) ans *= ( cnt * 2 + 1 );//i是可以分解成2个高斯素数的质因数,而且在N中它的幂是cnt,它在N^2中它的幂就是2*cnt。
}
//很明显,> sqrt(N) 的质因数最多有一个
if ( R > 1 && R % 4 == 1 ) ans *= 3; //3 = 1 * 2 + 1
printf( "%lld", ans << 2 ); //*1, *(-1), *i, *(-i)
return 0;
}
这里还是假设本原勾股数组(a,b,c)中,a为奇数。
这个证明思路与上面十分相似。只要把
Very easy. 给个开头,请自行证明。当然,这也能在所有勾股数组中适用)
这里感谢@LJC00118Rank1奆佬教会我如何证明。这里声明一下,我绝对没有照搬照抄)
证明:有一个定理
假设该定理不成立,
即
这与
还有两条不常用的性质,了解即可。
费马在某本书的边沿上写道。
不可能将一个3次方分成两个3次方之和;一个4次方不可能写成两个4次方之和;一般地,任何高于2次的幂不可能写成两个同次幂之和.我已发现一个美妙的证明,这里空白太小写不下
也就是说,
W( ̄_ ̄)W。。。这是一个世纪难题,1995年才被解决。。。大家了解即可,了解即可,如果您证出来了,我只能膜拜大仙。如果真的碰到类似于这样的式子,直接拿出来用就可以了,不要傻fufu地去证明。
这里再增加一些知识点。这里,我们通过其他方法推出勾股数组定理。
这样就转换为如何找出
我们以(0,0)为圆心,r=1为半径画圆。
很明显,点(1,0)是一个解。我们过点(1,0)作直线y=mx-m
然后就可以解方程组辣
m(x-1)=y x^2+y^2=1
得
由于x=1是一个解,我们可以将式子分解。
得到
当然,如果选取(-1, 0)也是可以的,这样求出来的答案有点不一样。
这两个式子几乎是等效的。如果设前一个式子中的
当
十分神奇,right? 通过这种方式,还可以用来描述所有勾股数组。
我们令
代入求值(下面的式子)——
这样我们得到一组勾股数。
之前忘了说明这是有理数,现在补上。给大家一个表格(来源:https://www.bilibili.com/video/av29019452/?p=9) 也就是说,有理数(RATIONAL)与有理数经过加减乘除运算后还是有理数,由于平方运算可以看成一个有理数自己乘自己,属于乘法 (整数次幂都可以看成乘法),所以,上述式子原来的变量只涉及实数的加、减、乘、除运算,得到的结果还是有理数。只要你定义的m满足是有理数,上面提及的所有变量都是有理数。
所有勾股数组都可以通过该式推出。当然,有一些限制)
我们发现,如果设
当然,更大的圆也可以算,请自己尝试——
这些图除了“如何找勾股数组”那张 都是自己画的QAQ 用英文的主要原因是字体不支持中文QAQ
上面一共8张图,1张在“如何找勾股数组”,7张在“最后的补充”,图挂了请联系我QAQ。上面都是用sm.ms图床。
sm.ms图床链接
https://i.loli.net/2018/12/30/5c285ea779436.png
https://i.loli.net/2018/12/30/5c285ea85c2bd.png
https://i.loli.net/2018/12/30/5c285ea8d289d.png
https://i.loli.net/2018/12/30/5c285ea8d5012.png
https://i.loli.net/2018/12/30/5c285ea90cb8e.png
https://i.loli.net/2018/12/30/5c285ea91d846.png
https://i.loli.net/2018/12/30/5c285ea950d09.png
2019.1.1
https://i.loli.net/2019/01/01/5c2b3ddc42c9a.png
洛谷图床不知道出了什么bug或浏览器有啥问题,上传不了QAQ
博客园图床链接
https://img2018.cnblogs.com/blog/1431616/201812/1431616-20181230132203024-266798052.png
https://img2018.cnblogs.com/blog/1431616/201812/1431616-20181230125844216-71658072.png
https://img2018.cnblogs.com/blog/1431616/201812/1431616-20181230125847902-1635489484.png
https://img2018.cnblogs.com/blog/1431616/201812/1431616-20181230125853033-143786982.png
https://img2018.cnblogs.com/blog/1431616/201812/1431616-20181230125900917-1173607715.png
https://img2018.cnblogs.com/blog/1431616/201812/1431616-20181230125856960-1997045235.png
https://img2018.cnblogs.com/blog/1431616/201812/1431616-20181230125904730-441530535.png
由于我很弱,所以可能会出错,欢迎指正错误QAQ。
今天就讲到这里了,这里骗个赞。