初级数论部分内容学习记录

以下内容仅为个人理解


欧几里德算法(gcd):

  • 一种用来求最大公约数的算法
  • 表示为gcd(a,b)
  • 也可以用gcd算法求最大公约数(lcm),lcm(a,b)=a*b/gcd(a,b)
  • (为了防止程序运行时溢出,在实际使用时常常先除后乘,也就是lcm(a,b)=a/gcd(a,b)*b(由于乘除不分先后,所以该式成立))
  • gcd的运算过程:gcd(a,b)=gcd(b,a%b).(a<b).因为在a%b的不断循环运行过程中,a是不断递减的,所以不会出现死循环的情况.
  • gcd的返回结果的条件:gcd(b,0)==b.也就是说,当方程gcd(a,b)递归到b=0时,说明a已经是此时的最大公约数了。那么就不需要再计算,直接返回a的值即可。映射到代码中的表现,就是如下代码:
int gcd(int a,int b){
    if(a<b)swap(a,b);
    if(b==0)return a;
    return gcd(b,a%b);
}
  • 通过一系列证明可以得出,在一般的数据范围下不会出现爆栈的情况.这是因为gcd(a,b)这个方法的递归层数是{log_{2}}^{n}级别的.(n=max(a,b)) 

扩展欧几里德算法(exgcd):

  • 用于求解贝祖方程:形如ax+by=gcd(a,b)=d这样的方程,已知a,b,求x和y的值(通过数论的其他内容可以证明该方程一定成立(有解)).

贝祖定理:

  • 对于形如ax+by=gcd(a,b)(a,bin N^{+})的方程,假若(a,bin Zcap left { 0 
ight } 
ight.)(a,b为不等于零的整数),则存在相对应的(x,y in Z)(整数解x,y).

二元运算:

  • 由两个元素产生一个新元素的运算,例如:加减乘除

卡尔丹公式:

  • 三次方程的一般求法

加法逆元:

  • 即"相反数".
  • 如:a的加法逆元为-a

群:

  • 代表一个满足封闭性、结合律,有单位元、逆元的二元运算的代数结构.

群论:

  • 对群的研究

单位元:

  • 定义一种运算规则"*",若a*e=e*a=a,则e称为单位元.

自然数:

  • N(大于等于0的整数)

合数:

  • 指自然数中除了能被1和本身整除之外,还能被其他数(0除外)整除的数

质数(素数):

  • 在大于1的自然数中,除了1和它本身不能被其他数整除的数

因数(约数):

  • 如果整数a除以整数b(b
eq0)没有余数,则b是a的因数.

极限:

  • 无限靠近而达不到的值.

映射(双射):

  • 两种元素的集相互对应,等同于函数.
原文地址:https://www.cnblogs.com/zbsy-wwx/p/11680684.html