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


    以下内容仅为个人理解


    欧几里德算法(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的因数.

    极限:

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

    映射(双射):

    • 两种元素的集相互对应,等同于函数.
  • 相关阅读:
    debian 登录CUPS 管理界面报错
    Shell脚本调试技术
    贴个ALSA例程
    产业生态圈和生态圈
    开个帖,开始学习shell编程
    Lua源码阅读建议
    Flash, EEPROM, SPI Flash diff
    makefile中的notdir,wildcard和patsubst
    quartus II使用零星记录
    Hello ZED
  • 原文地址:https://www.cnblogs.com/zbsy-wwx/p/11680684.html
Copyright © 2020-2023  润新知