在寒假自己对自己的硬核知识进行了充电,这本书是学长极力推荐的,是专门给数学系的学生进行对数论进行全面认识和理解的入门书籍,虽然自己是计算机的,但是并不影响去阅读它,读的过程中就发现了,书中不少数学系的知识映入眼帘,我确实有点慌,有选择的进行了阅读。读的比较仓促,但是读完确实是有如神助,补齐了自己之前在学习acm数论的不少的坑,让自己对一些知识有了更深的认识。比如拓展欧几里得和欧拉函数。
-一。毕达哥拉斯定理(勾股定理)
a^2+b^2=c^2;(a,b的奇偶性是相反的,且c总是奇数)
有一个神奇的规律就是存在两个数字s,t,使得a=s*t, b=(s^2-t^2)/2, c=(s^2+t^2)/2;
这个比较有实用价值,是对从小就开始学习的勾股定理有了实际性的鼓励总结。
二。费马大定理
a^n+b^n=c^n。(当n>=3,方程式无解)
很显然当n==0时这个等式不成立的,所以范围就从整个整数域缩到了{0,1,2}, 又缩小到{1,2}。看是很鸡肋的定理,但是这个就是作为常识的存在在acm题目中。
三。欧几里得算法和拓展欧几里得算法
gcd(a,b)为a,b的最大公因子,LCM(a,b)为a,b的最小公倍数。
且二者存在关系LCM(a,b)*gcd(a,b)=a*b;
欧几里得算法实质上就是由直到余数为零的一系列带余除法组成的。
注意如何在每一步用A除以B得到商Q和余数R,A=B*Q+R,然后在下一步用数B与R代替原来的A与B,继续此过程直到得到余数R==0为止。
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
我经常更加形象化的理解,就是给我们一个长方形的纸条,问这个纸条中构成它的最大的基础正方形的边长是多少。(即由有限个基础正方形构成所提供的长方形,求解它的最大边长)。
首先咱们将这个长方形进行撕开,撕下最大的一个正方形,那么留下一个新的长方形,之后再次进行这个操作,直到再次撕完之后剩下的是个正方形为止。那么这个正方形就是该长方形的最大基础正方形,它的边长就是提供长方形的长宽的最