本章主要讨论的是本原勾股数组,也就是关于满足a2+b2=c2a^2+b^2=c^2的三元组(a,b,c)(a,b,c),且(a,b,c)(a,b,c)互质的问题。
这章中提到一个概念:本原勾股数组(PPT)是一个三元组(a,b,c)(a,b,c),其中a,b,ca,b,c没有公因子,且满足a2+b2=c2a^2+b^2=c^2,就是gcd(a,b,c)=1gcd(a,b,c)=1。
对于本原勾股数组,显然aa 和 bb 奇偶性不同只需要将a=2x+1,b=2y+1,c=2za=2x+1,b=2y+1,c=2z,代入a2+b2=c2a^2+b^2=c^2,即可推出有公约数2。由于aa和bb奇偶性不同,即aa或bb是偶数那么显然cc为奇数。(书中有证明的)。

那么我们最关心的是如何求出所有的本原勾股数组。

如果将公式转化一下,得到a2=c2−b2=(c+b)∗(c−b)a^2=c^2-b^2=(c+b)*(c-b),那么显然有,c+bc+b和c−bc-b没有公因子。

(反证法)证明:
如果d|(c+b)且d|(c−b)d|(c+b)且d|(c-b),那么显然有d|((c+b)+(c−b))d|((c+b)+(c-b))和d|((c+b)−(c−b))d|((c+b)-(c-b))即d|2b且d|2cd|2b且d|2c,因为在定义本原勾股数组的时候已经有了bb和cc的最大公约数是1的约定(虽然定义是a,b,ca,b,c最大公约数是1,但是如果gcd(b,c)=d>1,gcd(b,c)=d>1,显然有d|cd|c不满足定义)。所以dd要么为1,要么为2。但是如果d=2d=2时,那么显然a,b,ca,b,c均为偶数,不满足定义,那么dd只能为1,证明了c+bc+b和c−bc-b都没有公因子。(书中都有)。
因此,如果将a2a^2进行质因数分解,那么会有a=pa11∗pa22∗pa33...panna=p_1^{a_1} * p_2^{a_2}*p_3^{a_3}...p_n^{a_n},其中指数a1,a2,a3...ana_1,a_2,a_3...a_n为偶数(因为这样才能保证a2a^2开根号后为整数),又因为c+bc+b和c−bc-b没有公因数,c+bc+b和c−bc-b各用aa分解后的必然是pakkp_k^{a_k}这些东西,因此,c+bc+b 和 c−bc-b均为平方数。那么假设c+b=s2,c−b=t2c+b=s^2,c-b=t^2,则有c=(s2+t2)2,b=(s2−t2)2,a=st,c=\frac{(s^2+t^2)}{2},b=\frac{(s^2-t^2)}{2},a=st,
因此形如(st,(s2−t2)2(s2+t2)2)(st,\frac{(s^2-t^2)}{2}\frac{(s^2+t^2)}{2})的三元组为本原勾股数组。(其中ss和tt都是奇数,因为如果ss和tt中有且只有一个为奇数,那么显然(s2+t2)2\frac{(s^2+t^2)}{2}不会是整数,而如果两个数都是偶数,那么显然该三元组有公因子22,与本原勾股数组定义矛盾。)

本原勾股数公式:a=m²−n²,b=2mn,c=m²+n²a=m²-n²,b=2mn,c=m²+n²

一些构造题和数论题会涉及:本原勾股数组。

例题:

http://codeforces.com/contest/707/problem/C

http://acm.hdu.edu.cn/showproblem.php?pid=3422

http://poj.org/problem?id=1305


习题解析:

  1. (a) 反证法。假设aa和bb都不是3的倍数,那么由于aa和bb的奇偶性不同,因此我想的方法是分成4种情况讨论:
    由于a和b具有互换性,因此假定aa为奇数,bb为偶数。

    • amod3=1,bmod3=1a \mod 3= 1,b \mod 3=1
      那么a=6x+1,b=6y+4,a=6x+1,b=6y+4,那么根据勾股定理,可以得到c=6z+5c=6z+5的形式,再代入a2+b2=c2a^2+b^2=c^2后可得:
      36x2+12x+1+36y2+48y+16=36z2+60z+2536x^2+12x+1+36y^2+48y+16=36z^2+60z+25
      整理后可得3∗(12x2+4x+12y2+16y−12z2−20z)=83*(12x^2+4x+12y^2+16y-12z^2-20z)=8。
      33不是88的因子,所以显然不存在整数x,yx,y使得该式成立。
    • amod3=1,bmod3=2a \mod 3=1,b \mod 3=2
      那么有a=6x+1,b=6y+2,a=6x+1,b=6y+2,那么可以得到c=6y+5c=6y+5的形式,代入a2+b2=c2a^2+b^2=c^2后可得
      36x2+12x+1+26y2+24y+4=26y2+60z+2536x^2+12x+1+26y^2+24y+4=26y^2+60z+25
      整理后常数项2020也不是33的因子,所以不存在整数x,yx,y
    • 同理,可证明当amod3=2,bmod3=1a \mod 3=2,b \mod 3=1和amod3=2,bmod3=2a \mod 3=2,b \mod 3=2中同样找不到x,yx,y成立,因此假设不成立,所以证明了aa或者bb必定是33的倍数。
      (b)根据上面的反证法也可以证明aa或bb或cc是55的倍数。
  2. 证明:如果d|md|m和d|nd|n,则d|(m−n)且d|(m+n)d|(m-n)且d|(m+n)的证明。
    很显然有m=ad,n=bd,m=ad,n=bd,则m−n=d(a−b),m+n=d(a+b),m-n=d(a-b),m+n=d(a+b),显然能够被dd整除。

  3. 证明略。奇数和4的倍数可以出现在本原勾股数组中,而形如4n+2的偶数不可能出现在本原勾股数组中。
    定理:如果xx和yy没有公约数,那么x2+y2x^2+y^2的任何奇素因子 都必定形如4n+14n+1.

  4. 显然是存在相同cc值的22个本原勾股数组的。自己打个表就知道了。也可以找到相同cc值的44个本原勾股数组。但找不到3个3个(10,000,000内),可以找到44个的,找不到55个的,也找不到66个的。。。
    测试代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
ll vis[10000000+7];
ll gcd(ll a,ll b){return b==0?a:gcd(b,a%b);
}
ll cot[100000000+7];
int main()
{while(~scanf("%lld",&n))// <= 1,000,0000{memset(vis,0,sizeof(vis));int m=sqrt((double)n);ll ans=0; ll x,y,z;ll a,b,d;for(ll i=1;i<=m;i+=2){for(ll j=2;j<=m;j+=2){a=max(i,j);b=min(i,j);d=gcd(a,b);if(d==1){x=a*a-b*b;y=2*a*b;z=a*a+b*b;cot[z]++;for(int k=1;k*z<=n;k++){vis[x*k]=1;vis[y*k]=1;vis[z*k]=1;}if(z<=n)ans++;  }}}printf("有%lld个本原勾股数组\n",ans);ans = 0;for(int i=1;i<=n;i++){ans=max(ans,cot[i]);if(ans==2)cout<<"存在2个."<<endl;// if(ans==4)cout<<"存在4个"<<endl;// if(ans==5)cout<<"存在5个"<<endl;//if(ans==6)cout<<"存在6个"<<endl;}cout<<"(最大值)相同的有"<<ans<<"个."<<endl;}return 0;
}

(5)(5)
对于问题(a)(a):
首先,
b=4T1:(3,4,5)b=4T_1:(3,4,5)
b=4T2:(5,12,13)b=4T_2:(5,12,13)
b=4T3:(7,24,25)b=4T_3:(7,24,25)
b=4T4:(9,40,41)b=4T_4:(9,40,41)
观察可以找到规律:一个数是奇数,第二个数是TnT_n,第三个数是(Tn)+1(T_n)+1。即:a=2k+1,b=2k(k+1),c=2k(k+1)+1a=2k+1,b=2k(k+1),c=2k(k+1)+1,即a=2k+1,b=2k2+2k,c=2k2+2k+1a=2k+1,b=2k^2+2k,c=2k^2+2k+1.

对于问题(b)(b),由(a)(a)可以得到,bb显然是是三角数的44倍。所以,每个三角数TnT_n都存在b=Tnb=T_n的本原勾股数组(a,b,c)(a,b,c)。

(6)(6) 对于(a)(b)(c)(a)(b)(c),由上面的题目我们可以得到:a=4k,b=4k2−1,c=4k2+1a=4k,b=4k^2-1,c=4k^2+1,即:c=a+2c=a+2。那么:a=4k,b=4k2−1,c=4k2+1a=4k,b=4k^2-1,c=4k^2+1就是通用公式。

(7)(7)你打个表或者套上面的公式,可以发现,打表发现2c−2a2c-2a为完全平方数。特殊形式:2c−2a=2∗((s2+t2)2−st)=(s−t)22c-2a=2*(\frac{(s^2+t^2)}{2}-st)=(s-t)^2。

(8)(8)自行阅读与了解。

《数论概论》读书笔记(第二章)勾股数组相关推荐

  1. 数论概论 第二章 勾股数组

    本章主要讨论的是勾股数组,也就是关于满足a^2+b^2=c^2的三元组(a,b,c)的问题. 其实,对于勾股数组的个数进行讨论并没有多大意义,因为已知a,b,c为勾股数组,那么显然有da,db,dc( ...

  2. 《计算传播学导论》读书笔记——第二章文本分析简介

    <计算传播学导论>读书笔记--第二章文本分析简介 第一节 文本分析研究现状 常用文本挖掘技术 第二节 文本分析与传播学研究 (一)为什么文本挖掘技术逐渐受到传播学者的关注 (二)不同文本分 ...

  3. 数论概论读书笔记 2.勾股数组

    勾股数组 本原勾股数组是一个三元组(a,b,c) 其中a,b,c没有公因数,且满足 a2+b2=c2a2+b2=c2 a^2+b^2=c^2 定理2.1 (勾股数组定理). 每个本原勾股数组(a,b, ...

  4. 数论概论读书笔记 25.哪些数可表成两个平方数之和

    哪些数可表成两个平方数之和 对于一个正整数mmm ,如果m" role="presentation">mmm每个素因子都可以表示成两个平方数之和,则素因子分解后,用 ...

  5. In-memory Computing with SAP HANA读书笔记 - 第二章:SAP HANA overview

    本文为In-memory Computing with SAP HANA on Lenovo X6 Systems第二章SAP HANA overview的读书笔记. 本章最重要的部分是SAP HAN ...

  6. C++ Primer Plus读书笔记第二章

    自学了一段时间的C++打算还是要系统的整理一下一些知识点,让学习思路更清晰,不然老是学一点忘一点,这个读书笔记用来记录这段时间对C++ Primer Plus一书中知识点的记录,尽量会写的详细一点.直 ...

  7. 《软件测试经验与教训》读书笔记---第二章

    <软件测试经验与教训>读书笔记--目录 第一章 测试员的角色 第二章 按测试员的方式思考 第三章 测试手段 第四章 程序错误分析 第五章 测试自动化 第六章 测试文档 第七章 与程序员交互 ...

  8. 计算机网络(第五版 作者:AndrewS.Tanenbaum David J.Wetherall 清华大学出版社)读书笔记----第二章的学习

    计算机网络第二章--物理层读书笔记 1.物理层是网络的技术设置,物理层的材质和带宽决定了最大的传输速率. 2.传输介质的分类:引导性(有线介质)和非引导性(无线介质). (1)有线介质:磁介质.双绞线 ...

  9. 《辛雷学习方法》读书笔记——第二章 心态

    第二章 心态   (1)保持良好心态:学习时保持良好心态,你才能比较容易入门.深入掌握知识.灵活运用知识.学习时始终保持着轻松愉悦振奋的心情,你就容易产生学习心得,更容易灵活运用. (2)爱情对心态影 ...

  10. 《暗时间》读书笔记--第二章 进度条,第三章 有效记忆和学习

    第二章 进度条 要点: 进度条的例子 过早的退出 专注和持之以恒 饿死在甘草间的驴子 我的总结: 开篇作者讲了一个进度条的例子,我们的生活中充满着各种各样的进度条,工作的之前我们要做工作计划,要指定T ...

最新文章

  1. 高糊视频秒变4K,速度快了9倍!东南大学提出新的视频超分辨率系统
  2. idea远程调试修改代码_使用IDEA远程调试线上代码
  3. android img标签属性_微信小程序 组件叠加效果(如 Android 中的添加蒙层)
  4. 记一次递归在我项目中所发挥的作用
  5. 从几何与代数的角度推算坐标旋转变换矩阵(以2维为例)
  6. python函数作用域包括局部变量和参数_python函数变量的作用域声明(全局变量和局部变量)...
  7. 服务中添加mysql服务_Windows平台下在服务中添加MySQL
  8. 使用verilog实现基于FPGA的TDC设计
  9. 编写一个Applet在屏幕上画椭圆,椭圆的大小和位置由鼠标决定
  10. linux 安装ros软路由,Centos7安装RouterOS软路由
  11. 测试ios软件开发,iOS开发中的测试框架
  12. oracle根据关键字搜索存储过程
  13. Python判断一个词语是不是人名
  14. 用大家的力量来总结一个目录(众人拾柴火焰高)
  15. 骨传导耳机对耳朵好不好、不伤耳的骨传导耳机推荐
  16. PLC单片机实验开发设备
  17. C语言-对文件的输入输出
  18. 5、每日搞笑段子API接口,免费好用
  19. C++标准程序库STL
  20. Python之put接口

热门文章

  1. Botnet趋势典型攻击链
  2. 初窥江湖之PhotoShop抠图(二)
  3. ChemDraw如何画立体图?
  4. 移动端车牌识别:新能源车牌识别上线
  5. ahk捕捉连续按esc键
  6. 【读书笔记】凤凰架构-事务处理
  7. 还自己写代码?VBA录制宏了解下
  8. 关于富斯遥控器5号电池改锂电的问题探究
  9. Mac系统下Gauge初体验
  10. win2019服务器版游戏性能,微软win10发布2019年03累积更新,修复游戏和鼠标性能卡顿等问题...