• 数论和有限域的基本概念


    写着一部分的时候我是抗拒的,不想看数学,不想看数学,不想看数学!!!!!但是,我和小伙伴说看到这不想看的时候,他说,这是精华啊,快看!!!!!呜呜呜呜呜,浅看一下吧。菜鸟进击-------------------------------------------------------------------

    1、整除性和除法

    1.1.1 整除性

     设a,b,m是整数,如果 a = mb,我们说非零整数b整除a。用 b | a表示b整除a,此时b是a的因子。如:6 | 24,13 |182, -5 | 20, -3 | 33

    接下来看整数整除的性质:

    • 如果 a | 1,则 a = ± 1
    • 如果 a | b 且 b | a,则 a = ± b
    • 任意非零整数b整除0
    • 如果 a | b,b | c,则 a | c  比如 11 | 66,66 | 198 = 11 | 198
    • 如果 b | g,b | h,则对任意的整数m和n,有 b | ( mg + nh )

    1.1.2 除法

    给定任意正整数n和任意非负整数a,如果用n除a,我们得到一个整数商q和一个整数余数r,可写成

                                                      a = qn + r         0 ≤ r < n;q = (a/n)下取整

    余数r经常被称为剩余数。

    2、欧几里得算法Euclid:求两个正整数的最大公因子

    2.1 最大公因子

    我们用gcd( a , b )表示a和b的最大公因子,即能够同时整除a和b的最大整数。定义特殊点gcd( 0, 0 ) = 0。假设c是a和b的最大公因子,则有以下性质:

    c是a和b的因子

    a和b的任何因子都是c的因子

    公式定义为gcd( a, b ) = max [ k, k | a 且 k | b]

     因为我们所求的最大公因子是正数,所以gcd( a, b ) = gcd( a, -b ) = gcd( -a, b ) = gcd( -a, -b ) 。如gcd( 60, -24 ) = 12。特殊的gcd( a, 0 ) = |a|

    如果gcd( a, b ) = 1,那么我们称a和b互素。

    2.2 求最大公因子

    辗转求余法知道d = gcd ( rn, 0 ) = rn

    3、模运算

    3.1 模

    如果a是整数,n是正整数,则定义a模n是a除以n所得的余数。整数n称为模数。因此,对于任意整数a,总有 a = qn + r    0 ≤  r < n;q = (a/n)向下取整

                                                                           11 mod 7 = 4; -11 mod 7 = 3

    如果( a mod n ) = ( b mod n ),则称整数a和b是模n同余的。可以表示为a ≡ b ( mod n )。如果 a ≡ 0 ( mod n ),则 n | a。

    3.2 同余的性质

    • 如果 n | (a - b),那么 a ≡ b ( mod n )
    • a ≡ b ( mod n ),隐含b ≡ a ( mod n )
    • a ≡ b ( mod n ),b ≡ c ( mod n ),那么a ≡ c ( mod n )

    3.3 模算术运算

    根据定义可知,运算 mod n将所有的整数映射到集合{ 0,1,2,……,n - 1 }

    模算术有以下性质

    • [ ( a mod n ) + ( b mod n ) ] mod n = ( a + b ) mod n 
    • [ ( a mod n ) - ( b mod n ) ] mod n = ( a - b ) mod n 
    • [ ( a mod n ) * ( b mod n ) ] mod n = ( a * b ) mod n

    3.4 模运算的性质

    定义比n小的非负整数集合为Zn:Zn = { 0,1,2,……,n - 1 },这个集合被称为剩余类集,或模n的剩余类。准确地说,Zn中每一个整数都代表一个剩余类。我们可以将模n的剩余类表示为[0] [1] [2] …… [n - 1],其中[r] = {a:a是一个整数,a ≡ r ( mod n )}

    举个栗子吧,这里需要一个栗子

    • 模4的剩余类:
    • [0] = { …… -16   -12   -8    -4    0    4    8     12    16 ……}
    • [1] = { …… -15   -11    -7    -3    1    5    9     13    17 ……}
    • [2] = { …… -14   -10    -6    -2    2    6   10    14    18 ……}
    • [3] = { …… -13     -9     -5    -1    3    7   11    15    19 ……}

    从栗子中可以看出,在剩余类的所有整数中,通常用最小的非负整数代表这个剩余类。寻找与k是同余的最小非负整数的过程,称为模n的k约化。

    3.5  修改的欧几里得算法

    对于任意非负整数a和任意正整数b gcd ( a,b ) = gcd ( b,a mod b ) 

    if ( b = 0 ) then return a;

    else return Euclid ( b, a mod b);

    3.6 扩展欧几里得算法

                                                                       d = gcd ( a,b ) = ax + by

    对于给定的整数a和b,ax+by的最小正整数等于 gcd ( a,b )

    对于给定的a和b,扩展欧几里得计算( x, y, d )。

    4、群 环 域

    4.1 群

    代数结构 - 吉吉的奥利奥 - 博客园 (cnblogs.com) 这里有过介绍

    设<G,*>是一个代数系统,其中G是非空集合,*是G上一个二元运算,G中的每一个序偶( a,b )通过计算生成G中的元素 ( a*b ),并满足以下公理

    (1)运算*是封闭的:如果a和b都属于G,则a*b也属于G

    (2)运算*是可结合的:对于G中任意元素a、b、c,都有a * ( b * c ) = ( a * b ) *c

    (3)存在幺元e:G中存在一个元素e,对于G中任意元素a,都有a*e = e*a = a成立

    (4)对于每一个元素x∈G,存在着他的逆元x-1,使得x * x-1 = x-1 * x = e

    则称<G,*>是一个

    在此,如果对于G中任意元素a和b,都有a * b = b * a成立,则<G,*>是一个交换群(阿贝尔群)

    循环群:

     定义a0 = e 作为单位元,如果群中每一个元素都是一个固定元素a的幂ak,则称群G为循环群。我们认为元素a生成了群G,或者说a是群G的生成元。循环群总是交换群,有可能是有限群,也有可能是无限群。

    4.2 环

    环R是一个有两个二元运算的集合,这两个二元运算分别称为加法和乘法,对于R中任何元素abc满足以下公理:

    (1)R关于加法是一个交换群

    (2)如果a和b都属于R,则ab也属于R

    (3)对于R中任意元素abc,有a(bc) = (ab)c

    (4)对于R中任意元素abc,都有a ( b + c ) = ab + ac; ( a + b )c = ac + bc

    本质上环就是一个集合,我们可以在上面进行加减乘法而不脱离该集合。

    实数上所有n阶方阵的集合关于加法和乘法构成一个

    在此,对于R中任意元素a、b,有ab=ba,则R是一个交换环。Zn就构成一个交换环

    基于交换环,满足乘法单位元1使得a1=1a=a;无零因子若ab=0,则必有a=0或者b=0,我们称为整环

    4.3 域

    域F是一个有两个二元运算的集合,这两个二元运算分别称为加法和乘法,对于R中任何元素abc满足以下公理:

    (1)F是一个整环

    (2)F中任意元素a(除0),F都存在一个元素a-1使得aa-1=a-1a=1成立

    本质上域就是一个集合,我们可以在上面进行加减乘法而不脱离该集合。除法可以定义为a/b=a*b-1

    5、有限域GF(p)

    阶为pn的有限域一般记为GF(pn),GF代表Galois域,以一位研究有限域的数学家名字命名。

    5.1 阶为p的有限域

    给定一个素数p,元素个数为p的有限域GF(p)被定义为整数{0,1,2,……,p - 1 }的集合Zp,其运算为模p的算术运算。比如Z7就是一个有限域,每个元素都有a + b = 0 mod 7,a * b = 1 mod 7。

    5.2 求GF(p)中乘法逆元

    根据扩展欧几里得算法得知,如果 by mod a = 1,则y = b-1

    6、多项式运算

    6.1 普通多项式运算

     一个n次多项式可以写为 f(x) = anxn + an-1xn-1 + …… + a1x + a0 = Σi=0 n aixi,其中ai是指某个系数集S中的元素,且an ≠ 0。我们称f(x)是定义在系数集S上的多项式。

    6.2 系数在Zp中的多项式

     假如系数集S是域F的元素,我们称其为域F上的多项式。这种情况下,系数集S是一个环,称为多项式环。

    对我们而言GF(2)上的多项式最有意义。他的加法等价于异或运算,乘法等价于逻辑与运算。模2的加减法是等价的。

    域F上的多项式f(x)被称为不可约的/既约的。当且仅当f(x)不能表示为两个多项式的积。一个不可约多项式也成为素多项式。

    7、有限域GF(2n)

    7.1 动机

    我们要寻找一个包含2n个元素的集合,其上定义了加法和乘法使之成为一个域。给集合的每一个元素赋值为0到2n-1之间唯一的整数。我们不会使用模算术,因为那样不能构成域。我们使用多项式算术来构造需要的域。

    7.2 多项式模运算

                                                                                                   f(x) = an-1xn-1 + …… + a1x + a0 = Σi=0 n-1 aixi        ai在集合{0,1,……,p - 1}

    如果乘法运算的结果是次数大于n-1的多项式,那么必须将其除以某个次数为n的既约多项式m(x)取其余式r(x),即r(x) = f(x) mod m(x)

    设m(x)为n次多项式,则模m(x)剩余类集合有pn个元素,其中每个元素都可以表示成一个m次多项式(m<n)。

    以m(x)为模的剩余类[x+1]由所有满足a(x)≡(x+1) mod m(x)的多项式a(x)组成。就是说,剩余类[x+1]中的所有多项式a(x)满足等式a(x) mod m(x) ≡ (x+1) 。

    由此可知,以n次既约多项式m(x)为模的所有多项式组成的集合满足域的所有公理,形成一个有限域。任意具有相同的阶的有限域具有相同的结构,但是元素的表示和标记可能不同。构造一个有限域GF(23),需要选择一个3次既约多项式,使得不同函数的加乘模上既约多项式之后都在该有限域内。

    7.3 求乘法逆元

     可以由扩展欧几里得算的

    7.4 多项式的特性

                                                                                                     f(x) = an-1xn-1 + …… + a1x + a0 = Σi=0 n-1 aixi 

    可以由n个二进制系数(an-1,an-2,……,a1,a0)系数表达法唯一的表达。因此,多项式可以表示成一个n位的二进制整数。

    加法可以由异或得到,乘法一般的,在GF(2n)上的对于n次多项式p(x),有 xn mod p(x) = p(x) - xn

    7.5 生成元

    1、阶为q的有限域F的生成元是一个元素g,即域F的元素为0,g0,g1,g2,……,gq-2。考虑到由多项式f(x)定义的域F,如果F内的一个元素b满足f(b)=0,则称b为多项式f(x)的跟。

    一个不可约多项式的根g是这个不可约多项式定义的有限域的生成元。

    举个栗子,这里还蛮难理解的。

    构造一个有限域GF(23),需要选择一个3次既约多项式,x+ x + 1。设生成元为g,则g满足f(g) = g3 + g + 1 = 0。因此,方程解满足 g3  = -g - 1 = g + 1。

    g4 = g * g3 = g ( g + 1 ) = g2 + g

    g5 = g * g4 = g ( g2 + g ) = g3 + g2 = g2 + g + 1

    g6 = g * g5 = g ( g2 + g + 1 ) = g3 + g2 + g = g2 + g + g + 1 = g2 + 1

    g7 = g * g6 = g ( g2 + 1 ) = g3 + g = g + g + 1 = g0

    g的幂产生了GF(23)所有的非0多项式。同样的,对所有k,有gk = gk mod 7

    幂表示 多项式表示 二进制表示 十六进制表示
    0 0 000 0
    g0 1 001 1
    g g 010 2
    g2 g2 100 4
     g3 g + 1 011 3
    g4 g2 + g 110 6
    g5 g2 + g + 1 111 7
    g6 g2 + 1 101 5
  • 相关阅读:
    js转换文件的size由KB转换为B、MB、GB
    SMW0 对应 MIME TYPE 无法包进请求上传
    SynapseML MMLSpark 集群 机器学习 训练
    Ribbon七种负载均衡策略详解
    restcontroller的作用
    跨域的实现方法
    Unknown collation: ‘utf8mb4_0900_ai_ci‘ 的解决方案
    Redis Template及4种序列化方式
    二维数组排序JS
    ad域&NTLM(浏览网址)
  • 原文地址:https://www.cnblogs.com/0211ji/p/16030912.html
Copyright © 2020-2023  润新知