Chapter 1. 数学基础 数论
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chapter 1. 数学基础 数论相关的知识,希望对你有一定的参考价值。
Chapter 1. 数学基础 数论(一)
Sylvia‘s I. 欧几里得算法.
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数(gcd).
内容:gcd(a,b) = gcd(b,a%b).
证明:设a=kb+r , 则r=a%b;
①设d为a,b的公约数,则有d|a , d|b;
且r=a-kb,故d|r;
所以d也是b , a%b的公约数。
② 设d 是b,a mod b的公约数,则 d|b , d|r ,
因a = kb +r;
所以d也是a , b的公约数
故a , b和b , a mod b的公约数是相同的,因此最大公约数也必然相同。
性质:
①gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|)
②gcd(a/m ,b/m)=gcd(a,b)/m
③gcd(ma,mb)=m*gcd(a,b)
代码:
int gcd(int a,int b){ if (!b) return a; return (b,a%b); }
Sylvia‘s Ⅱ.扩展欧几里德.
内容:给出 a 和 b,解方程 ax+by=gcd(a,b)
思想:
①求其中一解x,y
gcd(a,b)=gcd(b,a%b)
ax+by=gcd(a,b)
bx‘+(a%b)y‘=gcd(b,a%b)
ax+by=bx′+(a%b)y′ (a%b<=>a-[a/b]*b)
ax+by=bx′+(a??a/b??b)y′
ax+by=ay′+b(x′??a/b??y′)
故x=y′, y=x′??a/b??y′
边界条件为 gcd(a,0)=a;
②对于其通解,设已求得的一组解为(x0,y0),其他解(x,y)
有ax0+by0=ax+by (都等于gcd(a,b))
变形得a(x0-x)=b(y-y0) 两边同除gcd(a,b)
设a‘=a/gcd(a,b),b‘=b/gcd(a,b)
则 a‘(x0-x)=b‘(y-y0) 此时a‘和b‘必然互质,因此(x0-x)是b‘的倍数,设(x0-x)=kb‘ 代入得 y=y0+a‘k
同理,(y-y0)是a‘的倍数,设(y-y0)=ka‘ 代入得 x=x0-b‘k
所以对于方程ax+by=gcd(a,b)的任意整数解可以写成
x=x0-k*b/gcd(a,b)
y=y0+k*a/gcd(a,b) k取任意整数.
注:①推导过程并未用到“ax+by的右边是什么”
②如果gcd(a,b)=0,则意味着a或b等于0,可以特判
代码:
int ex_gcd(int a,int b,int &x,int &y){ if (b==0){ x=1; y=0; return a; } int ans=ex_gcd(b,a%b,x,y); int temp=x; x=y; y=temp-a/b*y; return ans; }
Sylvia‘s Ⅲ. 模运算.
公式:①(a+b) % p=((a % p) + (b % p)) % p
②(a-b) % p = ((a % p) - (b % p)+p) % p
③(a*b) % p = (a % p) * (b % p) % p
注意:对于公式②,由于(a % p)可能小于(b % p),所以需要在结果上加上p.
对于公式③,需要注意(a % p) 和 (b % p) 相乘是否会溢出.
Sylvia‘s Ⅳ. 同余.
定义:两个整数a,b,除以正整数m,若余数相同,则称"a和b关于模m同余",记作a≡b(mod m),这叫作同余式.
说明:aΞb(mod m)<=>a=km+b(k取任意整数)<=>m|(a-b)
那么对于方程ax≡b (mod m),可以理解为(ax-b)为m的倍数,设这个倍数为y,则ax-b=my,m为任意整数,所以可以写成ax+my=b
该方程有整数解的充要条件是gcd(a,m)|b.
特殊情况:当b=1时,ax≡1 (mod m)的解称为a关于模m的逆,而对于此方程有解必须满足gcd(a,m)|1,那么a和m必须互质(即gcd(a,m)=1),在此种情况下,方程有唯一解.
性质:
①反身性 a≡a (mod m).
②对称性 若a≡b(mod m),则b≡a (mod m).
③传递性 若a≡b (mod m),b≡c (mod m),则a≡c (mod m).
④ 加法 若a≡b (mod m),c≡d(mod m),则a±c≡b±d (mod m)
特别地,若a≡b (mod m),则a±k≡b±k (mod m).
鱼丽之宴
木心
”我曾见过生命
都只是行过
无所谓完成“
Sylvia
二零一七年五月六日
以上是关于Chapter 1. 数学基础 数论的主要内容,如果未能解决你的问题,请参考以下文章