这篇文┞仿评论辩论了数论中每个法度榜样员都应当知道的几个重要概念。本文的内容既不是对数论的入门介绍,也不是针对数论中任何特定算法的评论辩论,而只是想要做为数论的一篇参考。如不雅读者想要获取关于数论的更多细节,文中也供给了一些外部的参考文献(大年夜多笆攀来自于 Wikipedia 和 Wolfram )。
该 除数函数,表示为 d(n),给出了一个天然数的除数的数量。例如,d(18) = 6。类似地,除数函数之和,表示为 σ(n),给出了 n 的除数的和。 是以,σ(18) = 1+2+3+6+9+18 = 39。关于这两个函数以部属性毫无价值:
- 如不雅 p 是素数,则 d(p) = 2。别的, d(pk) = k+1, 并且 σ(p) = p+1
- 如不雅 n 是两个不合的素数的乘积,借使 n = pq, 则 σ(n) = n+1+(p+q)。别的不雅察到这种情况:φ(n) = n+1-(p+q)。
- 一般来说,令 n = p1a1 * p2a2 * .... * pkak 。则 d(n) = (a1+1) * (a2+1) * ... (ak + 1),并且 σ(n) 由以下乘积给出:
0. 皮亚诺公理
全部算术规矩都是建立在 5 个根本公理基本之上的,这 5 个根本公理被称为皮亚诺公理。皮亚诺公理定义了天然数所具有的特点,具体如下:
- 0是天然数;
- 每个天然数都有一个后续天然数;
- 0不是任何天然数的后续天然数;
- 不合天然数的后续天然数不合;
- 如不雅集合S包含了数字0,并且包含S中每一个数字的后续天然数,那么集合S就包含了所有的天然数。
上述第5个公理也被称为“数学归纳法的基本”。
平日,除了我们想要证实其他算术定理的情况,我们很少直接应用上述公理。但作为算术的基石,这些公理是值得我们去懂得的。
1. 算术根本定理和除法运算轨则
除法运算轨则含义是说:给定两个整数a,b(b不等于0),那么存在两个整数q和r使得下面的等式成立:
- a = bq + r, 0 <= r < b
具稀有学归纳道理的问题和解决筹划的教程。
平日我们把q称为商,而把r称为余数。如不雅r = 0,那么我就说b整除a,并且表示为:b | a.
2. 欧几里得定理
数学中两个重要定理,被称为“欧几里德的第必定理(或欧几里德的引理)”和“欧几里德的第二定理(平日简称为”欧几里德定理“),内容如下:
- 第必定理:p|ab => p|a or p|b。该定理的直接结论就是算术根本定理。
- 第二定理:质数的数量是无穷的。有很多简单的证实办法。
固然确切存在无穷多的质数,但也应当记住,质数之存放在随便率性大年夜的差值。换句话说,给定n的前提下,老是可以获得一些列的n个持续复合数。
3. 最大年夜公约数、最小公倍数和贝祖定理
正如这个定理的名称所言,算术根本定理是数论中所有概念的核心。算术根本定理含义如下:任何一个大年夜于1的┞符数都可以以某种特定的方法写成质数的乘积的情势(这种特定方法取决于乘积中质数的次序)。例如,18 = 2 * 9, 1755 = 33 *5 * 13. 这个定理在几乎所有的数论运算轨则中都扮演着十分重要的角色,例如求一个数的质数因子、最大年夜公约数、除数的和等等。想要证实这个定理其实很简单,实际上它是欧几里得第一个定理的一个推论(下面末节会评论辩论到)。
欧几里得算法是求两个数的最大年夜公约数最常用的算法,并且也是一个很高效的算法,因为应用欧几里得算法求解两个数的最大年夜公约数的算法步调最多不会跨越这两个数中较小的那个数的5倍。最大年夜公约数平日应用圆括号表示—— (a,b) 表示a和b的最大年夜公约数。类似地,最小公倍数平日应用方括号表示—— [a,b] 表示a和b的最小公倍数。
- 如不雅 (a,b) = 1,即 [a,b] = ab,此时我们称a和b互质。
- 如不雅 (a,b) = d,那么 (a/d,b/d) = 1。
最大年夜公约数和最小公倍数之间的关系可以由一个异常简单的等式来表示:(a,b) * [a,b] = ab. 该等式为我们供给了一种快速计算两个数的最小公倍数的办法。
贝祖定理是说,如不雅 d = (a,b) 那么必定存在整数 x 和整数 y 知足 ax + by = d. (当然,如不雅存在的话,那么线性双变量方程的理论包管了无穷多解的存在性)。同样值得留意的是,k = d 是知足 ax + by = k 有一个关于 x 和 y 的解的最小正整数。
4. 整数因式分化
整数因子分化的最常用的算法是 Eratosthenes 筛选法。在分化N时,将质数扫描到 sqrt(N)就足够了。别的,如不雅我们须要对 1 到 N 之间的所稀有字进行因式分化,则可以应用该算法的单次运行来完成此义务 - 对于 1 到 N 之间的每个整数 k ,我们可以保持一对映射——整除 k 的最小质数、最大年夜倍数,(p,a)。k 的残剩质因子与 k/(pa) 的类似。
5. 线性同余方程组
形如ax≡b (mod n)的方程式(x是未知数)称为线性同余。当且仅当存在整数x使得n | (ax-b)成立时,如许的方程组将有一个解,即ax -b = ny,y是整数,换句话说,ax + n(-y)= b。我们已经大年夜Bezout的等式中得知,像如许的线性不定方程将只有在(a,n)的gcd(假设该值为d)整除b时才有解。在这种情况下,让b = dd',a = da',n = dn',所以我们有:
- da'x + dn'( - y)= dd',个中gcd(a',n')= 1
- 带入变量d
- a'x + n'( - y)= d'。
- 因为gcd(a',n') = 1,如今我们可以应用扩大的欧几里德的算法来找到a'x + n'( - y)= 1的解,然后将该解乘以d'获得对于a'x + n'( - y)= d'的解。
留意,如不雅ax≡b(mod n)有一个解,则mod(n / d)有且仅有一个解。如不雅这个解是用x0表示的,那么mod n将正好有d个解,由x0 + kn/d给出,个中0<= k
推荐阅读
Edge Hub UI 微脆弱前宣布Edge浏览器已经上岸Android和iOS平台。如不雅用户想要测验测验在iOS平台上应用Edge浏览器,起首须要成为 Windows Insider项目成员,并在近期宣布的Windows 10预览>>>详细阅读
本文标题:每个程序员都应该知道的基础数论
地址:http://www.17bianji.com/lsqh/37732.html
1/2 1