基础数论的一些名词和定理 [未完]
Posted qixingzhi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础数论的一些名词和定理 [未完]相关的知识,希望对你有一定的参考价值。
欧几里得算法
欧几里得算法用来快速求解两个数的最大公约数。
整除性
(a|b)表示(a)整除(b),即(b)是(a)的倍数。
定理1:设(a,b,c)为整数,若(a|b, a|c),则(a|(b+c))成立
证明: 设(b = sa, c = ta(s,t为整数)),则(b+c = sa + ta = a(s+t)),故(a | (b+c))
最大公约数
(gcd(a, b))表示(a,b)的最大公约数。
最暴力的求解最大公约数的方法是枚举(a,b)的所有公约数,并取相同的最大的公约数。但很明显太浪费时间了。
欧几里得是怎么做的?
要求解(gcd(a,b)),通过不断求解$ gcd(b, a \% b) $直到$ a \% b = 0 $时,取(b)作为答案。
代码实现:
int gcd(int a, int b){ return b==0?a:gcd(b,a%b); }
注意为什么不用判断(a)和(b)的大小?因为当(a < b)时$ a \% b $ == (a)
$ S(n,k)= sumlimits_{i=0}^kC_{n/p}^{i/p}*C_{n \%p}^{i \%p} mod p $
以上是关于基础数论的一些名词和定理 [未完]的主要内容,如果未能解决你的问题,请参考以下文章