Presentation is loading. Please wait.

Presentation is loading. Please wait.

第十四讲 有关数论算法 内容提要: 初等数论概念 最大公约数 模运算和模线性方程 中国余数定理 2019/4/29.

Similar presentations


Presentation on theme: "第十四讲 有关数论算法 内容提要: 初等数论概念 最大公约数 模运算和模线性方程 中国余数定理 2019/4/29."— Presentation transcript:

1 第十四讲 有关数论算法 内容提要: 初等数论概念 最大公约数 模运算和模线性方程 中国余数定理 2019/4/29

2 初等数论概念 整除性和约数 素数和合数 1)d | a ,读作”d整除a”,表示a是d的倍数;
2)约数:d | a 且d>0,则d是a的约数;(即定义约数为非负整数) 3)对整数a最小约数为1,最大为|a|。其中,1和|a|为整数的平凡约数,而a的非平凡约数称为a的因子; 素数和合数 1) 素数(质数):对于整数a > 1,如果它仅有平凡约数1和a,则a为素数; 2) 合数:不是素数的整数a ,且 a > 1; 3) 整数1被称为基数,它不是素数也不是合数; 4) 整数0和所有负整数既不是素数也不是合数; 2019/4/29

3 初等数论概念 已知一个整数n,所有整数都可以划分为是n的倍数的整数,以及不是n的倍数的整数。对于不是n的倍数的那些整数,又可以根据它们除以n所得的余数来进行分类。——数论的大部分理论都是基于这种划分 除法定理(Th31.1): 其中,q为商,值r = a mod n称为余数。 根据整数模n所得的余数,可以把整数分为n个等价类。包含整数a的模n等价类为:[a]n = { a + nk | k ∈ Z }。如 [3]7= {…, -4, 3, 10, 17, …} 模n等价类可以用其最小非负元素来表示,如3表示[3]7 性质:如果 a ∈ [b]n , 则 a ≡ b ( mod n ) 2019/4/29

4 初等数论概念 2019/4/29

5 初等数论概念 公约数:d是a的约数也是b的约数,则d是a和b的公约数。 公约数性质: 最大公约数: gcd基本性质:
-- d | a且d | b蕴含着d | (a+b)和d | (a-b) -- 对任意整数x和y,有 d | a 且 d | b 蕴含着 d | ( ax + by ) -- 如果a | b 则 |a| ≤|b|或者b=0, 这说明 ”a|b且b|a,则a = +/- b” 最大公约数: -- gcd( a, b)表示两个不同时为0的整数a和b的最大公约数; -- gcd(a,b)介于1和min(|a|, |b|) 之间; gcd基本性质: -- gcd ( a, 0 ) = |a|; -- gcd ( a, ka ) = |a|; 2019/4/29

6 初等数论概念 最大公约数性质: 2019/4/29

7 初等数论概念 互质数:如果gcd(a,b)=1,则称a与b为互质数;
如果两个整数中每一个数都与一个整数p互为质数,则它们的积与p互为质数,即: 唯一因子分解: 定理31.7: 对所有素数p和所有整数a, b, 如果 p | ab,则 p | a 或 p | b(或者两者都成立) 2019/4/29

8 最大公约数 一种直观求解GCD: 根据a和b的素数因子分解,求出正整数a和b的最大公约数gcd(a,b),即:
注:这种解法需要整数的素因子分解,而素因子分解是一个很难的问题(NP问题) 2019/4/29

9 最大公约数 欧几里得算法 Th.31.9(GCD递归定理): 对任何非负整数a和正整数b,有gcd(a,b) = gcd(b, a mod b) ; * 可以通过证明gcd(a,b)与 gcd(b, a mod b)能相互整除来证明该定理! P526 伪代码: Euclid(a, b) { if b=0 then return a; else return Euclid(b, a mod b); } 例子: Euclid( 30, 21 ) = Euclid ( 21, 9 ) = Euclid ( 9, 3 ) = Euclid ( 3, 0 ) 2019/4/29

10 最大公约数 Euclid算法的运行时间: 2019/4/29

11 最大公约数 扩展的Euclid算法: 2019/4/29

12 最大公约数 用计算gcd( 99, 78 )的例子说明Extended-Euclid的执行过程:
a b floor(a/b) d x y 99 78 1 3 -11 14 78 21 3 3 -11 21 15 1 3 -2 15 6 2 3 1 -2 6 3 2 3 1 3 1 3 - (d, x, y) = ( a, 1, 0 ) 2019/4/29

13 模运算和模线性方程 群(S, ⊕)是一个集合S和定义在S上的二元运算⊕,且满足封闭性、单位元、结合律、逆元等4个性质;
交换群(a ⊕ b = b ⊕ a)和有限群: 2019/4/29

14 模运算和模线性方程 其中,p包括能整除n的所有素数(如果n是素数,则也包括n本身)
直观上看,开始时有一张n个余数组成的表{0,1,…,n-1},然后对每个能整除n的素数p,在表中划掉所有是p的倍数的数。 如果p是素数,则Zp*={1,2,…,p-1},并且Φ(p) = p-1 如果n是合数,则Φ(n)<n-1 14

15 模运算和模线性方程 问题描述: 15

16 模运算和模线性方程 定理1: 方程ax ≡ b (mod n) 对于未知量x有解,当且仅当 gcd( a, n) | b。
定理2: 方程ax ≡ b (mod n)或者对模n有d个不同的解,其中 d = gcd(a, n),或者无解。 2019/4/29

17 模运算和模线性方程 17

18 模运算和模线性方程 输入a和n为任意正整数,b为任意整数 Modular-Linear-Equation-Solver( a, b, n)
{ (d’, x’, y’ )  Extended-Euclid( a, n); if d | b then x0  x’(b/d) mod n for i  0 to d-1 do printf (x0+i(n/d)) mod n else print “no solutions” } 18

19 模运算和模线性方程 求解方法: 19

20 模运算和模线性方程 2019/4/29

21 中国余数定理 中国余数定理,也称中国剩余定理,孙子剩余定理。
从《孙子算经》到秦九韶《数书九章》对一次同余式问题的研究成果,在19世纪中期开始受到西方数学界的重视。1852年,英国传教士伟烈亚力向欧洲介绍了 《孙子算经》的“物不知数”题和秦九韶的“大衍求一术”;1876年,德国人马蒂生指出,中国的这一解法与西方19世纪高斯《算术探究》中关于一次同余式 组的解法完全一致。从此,中国古代数学的这一创造逐渐受到世界学者的瞩目,并在西方数学史著作中正式被称为“中国剩余定理”。 2019/4/29

22 中国余数定理 韩信点兵: 韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝的建立了卓绝的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了保住军事机密,不让 敌人知道自己部队的实力,先令士兵从1至3报数,然后记下最后一个士兵所报之数;再令士兵从1至5报数,也记下最后一个士兵所报之数;最后令士兵从1至7 报数,又记下最后一个士兵所报之数;这样,他很快就算出了自己部队士兵的总人数,而敌人则始终无法弄清他的部队究竟有多少名士兵。 这个故事中所说的韩信点兵的计算方法,就是现在被称为“中国剩余定理”的一次同余式解法。它是中国古代数学家的一项重大创造,在世界数学史上具有重要的地位。 2019/4/29

23 中国余数定理 用数学语言来表述就是如下线性同余方程 《孙子算经》实际上是给出了这类一次同余式组 的一般解:
最早提出并记叙这个数学问题的,是南北朝时期的数学著作《孙子算经》中的“物不知数”题目。这道“物不知数”的题目是这样的: “今有一些物不知其数量。如果三个三个地去数它,则最后还剩二个;如果五个五个地去数它,则最后还剩三个;如果七个七个地去数它,则最后也剩二个。问:这些物一共有多少?” 用数学语言来表述就是如下线性同余方程 《孙子算经》实际上是给出了这类一次同余式组 的一般解: 2019/4/29

24 中国余数定理 但由于题目比较简单,甚至用试猜的方法也能求得,所以《孙子算经》尚没有上升到一套完整的计算程序和理论的高度。
真正从完整的计算程序和理论上解决这个问题的,是南宋时期的数学家秦九韶。秦九韶在他的《数书九章》中提出了一个数学方法“大衍求一术”,系统地论述了一次同余式组解法的基本原理和一般程序。 如今,中国余数定理广泛应用于通信领域。譬如,电子工程师发明的“中国余数码” (Chinese Remainder Code) 是一种常用的纠错编码 (error correcting code)。 2019/4/29

25 xa1M1’M1+a2M2’M2+…+akMk’Mk(mod n)
中国余数定理 xa1M1’M1+a2M2’M2+…+akMk’Mk(mod n) 其中Mi=n/ni, Mi’Mi1(mod ni), 1≤i≤k. 2019/4/29

26 x 1×3×462+1×5×385+1×4×330 + 1×10×210 6731 2111(mod 2310).
例 韩信点兵:有兵一队, 若列成五行纵队, 则末行一人; 成六行纵 队, 则末行五人; 成七行纵队,则末行四人; 成十一行纵队,则末 行十人, 求兵数. 解: 设x是所求兵数, 则依题意: x1(mod 5), x 5(mod 6) x4(mod 7), x 10(mod 11) 令n1=5,n2=6,n3=7,n4=11,b1=l, b2=5, b3=4, b4=10. 于是n=n1n2n3n4=5×6×7 × 11=2310, M1=2310/5=462, M2=385, M3=330, M4=210. 有M’1M11(mod 5), 即1462 M’1 2M’1(mod 5) ,因此M’1=3. 同 理可求M’2=1, M’3=1, M’4=1. 故解为: x 1×3×462+1×5×385+1×4× ×10×210 6731 2111(mod 2310). 即 x= k, k=0,1,2,…. 15:51:43

27 作业: , , 2019/4/29


Download ppt "第十四讲 有关数论算法 内容提要: 初等数论概念 最大公约数 模运算和模线性方程 中国余数定理 2019/4/29."

Similar presentations


Ads by Google