数论
q437634645
这个作者很懒,什么都没留下…
展开
-
欧几里得算法
欧几里德算法: 证明:gcd(a,b)=gcd(b,a%b)(a>b) (模算术(a+b)%c=(a%c+b%c)%c) 因为a%b=a-k*b,显然式子中a和b的最大公约是gcd(a,b) 扩展欧几里德算法: 求解ax+by=k*gcd(a,b)的整数解 设: ax1+ by1= gcd(a,b) bx2+ (a%b)y2= gcd(b,a%b) 因为gcd(a,b)=g原创 2015-11-02 22:10:48 · 340 阅读 · 0 评论 -
乘法逆元
乘法逆元: 设ax≡1%b,则称x为a关于模b的乘法逆元。 Q:为什么要使用乘法逆元呢? A:假设要求(a/b)%c,a非常大(求出a的过程超出整型范围)无法直接求出值,所以希望可以想但是除法没有对应的模算术,所以出现了乘法逆元。 证明: 设bx≡1%c,则b*x=p*c+1得x=(p*c+1)/b 把x带入(a*x)%c中, 变为 [a*(p*c+1)/b]%c =[(a*原创 2015-11-02 22:26:34 · 290 阅读 · 0 评论 -
HDU 5768(中国剩余定理+容斥定理)
题目描述:计算(a,b)内能被7整除且不满足给定条件的数有多少个。 首先找出能被7整除的数,再除去能被7整除且满足一个条件的数,这可能会把满足两个条件的数减去两次,所以要加上即为容斥定理。 代码如下: #include #include #include #include using namespace std; #define ll long long const i原创 2016-07-29 21:18:47 · 386 阅读 · 0 评论