数论在acm竞赛中的应用1
2017-10-27 21:53
162 查看
总结一(数论1)
摘要:不摘了,懂的就几个定理
关键词:欧几里得,扩展欧几里得,乘法逆元,同余膜,质数,二分快速幂,矩阵,待续
一,算法介绍
[b]1)欧几里得[/b]
Gcd(a,b)=Gcd(b,a%b)
注解:递归,循环也行,a=Gcd(a,0)
2) [b]扩展欧几里得[/b]
有 Ax + By = D
A,B,D已知,当gcd(A,B)|D(即D%gcd(A,B)=0)时,x,y有整数解
I.[b]典型同余模问题[/b]
问题链接:http://poj.org/problem?id=2115
题意:
for (variable = A; variable != B; variable += C)statement;
以上变量均为k位unsigned
integer type (int为32位),会给出A.B.C.k,让你求这个循环运行多少次,如果是死循环,输出Forever.
题解:
(A+x*C)%2^k=B
x有解,x即为答案;
x无解,输出Forever.
进行同余模转化:
(A+x*C)%2^k=B%2^k……①
Cx+y*2^k=B-A……②
②式就很明显了,若gcd(C,2^k)|B-A,则答案有解
怎么求这个解呢?可用如下算法求出一个特解
![](https://img-blog.csdn.net/20171027215621870?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG51X2ludGVyZXN0aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
然后由特解求出通解:
x=x0+k(b/gcd(a,b));
y=y0+k(a/gcd(a,b));
这里的k为任意整数
最后,最小正整数解就是答案了
3)对分数取模需要用到的[b]乘法逆元[/b]
定义:a*x % MO = 1 % MO
则称x为a关于MO的乘法逆元
所以:(b/a)%MO=b*x%MO
怎么求乘法逆元?
I.[b]扩展欧几里得[/b]
II.[b]费马小定理[/b]
如果MO是质数,x=a^(MO-2).
/* 第一篇就这样吧 *//*/*/*/*注释符占位*/*/*//
摘要:不摘了,懂的就几个定理
关键词:欧几里得,扩展欧几里得,乘法逆元,同余膜,质数,二分快速幂,矩阵,待续
一,算法介绍
[b]1)欧几里得[/b]
Gcd(a,b)=Gcd(b,a%b)
注解:递归,循环也行,a=Gcd(a,0)
2) [b]扩展欧几里得[/b]
有 Ax + By = D
A,B,D已知,当gcd(A,B)|D(即D%gcd(A,B)=0)时,x,y有整数解
I.[b]典型同余模问题[/b]
问题链接:http://poj.org/problem?id=2115
题意:
for (variable = A; variable != B; variable += C)statement;
以上变量均为k位unsigned
integer type (int为32位),会给出A.B.C.k,让你求这个循环运行多少次,如果是死循环,输出Forever.
题解:
(A+x*C)%2^k=B
x有解,x即为答案;
x无解,输出Forever.
进行同余模转化:
(A+x*C)%2^k=B%2^k……①
Cx+y*2^k=B-A……②
②式就很明显了,若gcd(C,2^k)|B-A,则答案有解
怎么求这个解呢?可用如下算法求出一个特解
然后由特解求出通解:
x=x0+k(b/gcd(a,b));
y=y0+k(a/gcd(a,b));
这里的k为任意整数
最后,最小正整数解就是答案了
3)对分数取模需要用到的[b]乘法逆元[/b]
定义:a*x % MO = 1 % MO
则称x为a关于MO的乘法逆元
所以:(b/a)%MO=b*x%MO
怎么求乘法逆元?
I.[b]扩展欧几里得[/b]
II.[b]费马小定理[/b]
如果MO是质数,x=a^(MO-2).
/* 第一篇就这样吧 *//*/*/*/*注释符占位*/*/*//
相关文章推荐
- ACM数论模板及应用
- (Relax 数论1.8)POJ 1284 Primitive Roots(欧拉函数的应用: 以n为模的本原根的个数phi(n-1))
- 数论基本定理及应用(三)
- [数论-欧拉函数的应用]NEFU 1115
- [再寄小读者之数学篇](2014-11-14 矩阵的应用: 数论)
- 裴波那契整除(摘自数论及应用)
- HDU 3501 数论 欧拉函数的应用
- POJ 1183 反正切函数的应用(数论)
- NEFU 630 数论扩展欧几里得算法的应用
- 2006-8-11 11:29:00 搜索算法及其在ACM竞赛中的应用(作者/刘力科 计算机系01级4班)
- 欧拉函数概念与应用拓展 - 数论
- 教你一波Lucas(卢卡斯)定理在数论解题中的应用
- HDU 1124 求末尾0的个数,函数 [ x ] , { x } 在数论中的小应用
- 数论学习之欧几里得的应用
- 数论学习之欧几里得的应用
- map在ACM竞赛中的应用
- (《数论及应用1.3》NEFU 116 两仪剑法(最小公倍数&&最大公约数))
- 数论基础定理及其应用(hdu 2685 I won't tell you this is about number theory, hdu 2582 f(n),hdu 1792 A New Chan)
- (数论 素数分布的应用)nefu 117 素数个数的位数(素数定理的位数公式)
- 数论的小应用:Last non-zero Digit in N!