《算法导论》数论知识总结(一)

1.最大公约数gcd
首先当然是地球人都知道的辗转相除求最大公约数了,
之后就是在求最大公约数的辗转相除过程中,顺路求出x和y,使d = gcd(a,b) 并且 d = ax + by
辗转相除的递归次数:如果gcd(a, b)递归次数为k 则a >= F[k+2] b>= F[k+1],其中F是斐波那契数
推论:当b < F[k+1]时 gcd(a, b)递归次数少于k,用数学归纳法证明

2.群和模运算
群:(S, +)就是一个集合和定义其上的运算,满足封闭性,单位元e(即a + e = a),结合律,逆元(对于a,存在b 使a + b = e)
自然数模n的结果集为Z[n]结果集中与n互质的数集为Z*[n],他们与模乘模加都可组成可交换群,Z*[n]的规模成为欧拉phi函数phi[n]
子群:是某群的子集且本身是群,子群的规模是其父群规模的约数,在(Z*[n],*(模乘))这样的群上任取元素a,a^1、a^2、a^3、a^4……。可循环并构成一个子群
在群(S ,*)上,任意一元素a,a^0 = a^|S| = e (单位元)

3.求解模方程
模方程定义:已知a,b,n,求x,使得 ax (mod n) = b (mod n)
也就是求 (ax + ny )mod n = (b) mod n 这就跟求最大公约数那里对上了
若a在(Z[n],+)中,gcd(a,n) = d,那么用a生成的子群为{0, d, 2d, 3d……n-d},大小为n/d
可以推出(ax + ny )mod n = (b) mod n 中有解的充要条件是gcd(a, n) 可以整除b
则当ax* + ny* mod= d 并且 d = gcd(a, n)时 (也就是前面说的最大公约数扩展) 上面方程的一个解为 x = x*(b/d)mod n ,可证该方程有d个不同的解分别是 x* + i(n/d)   其中i取[0 ~ d - 1] 特别的在gcd(a, n) = 1时 有唯一解

4.中国余数定理
设n=n1*n2*......nk 其中两ni两两互质,a在Z[n]中,ai在Z[ni]中,可以找到这样的对应关系a <-> a1....ak
使 a mod n = a, a mod n1 = a1, a mod n2 = a2....
根据ai ni求a得过程:a mod n = (a1c1 + a2c2 + a3c3.+..+ akck)
mi = n1ni2...ni-1ni+1...nk = n/ni    mi^-1是mi 在Z[ni]中的逆元
ci = mi(mi^-1 mod ni)
a = (c1a1 + c2a2 + ... + ckak) mod n
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值