zoukankan      html  css  js  c++  java
  • 【初等数论】 02

      当从这里开始的时候,你的行囊里不需要太多的东西,只要会整数的加减乘除即可。东西多了不仅帮不了你,反而会成为前进的负担。正如在前两篇中一样,你需要首先抛开一切固有思维,清空大脑,带着孩童般的好奇心重新认识这个世界。由于数论经常出现于奥数和智力题中,它往往被当成一种智力游戏,但随着研究的深入,你需要建立一套理论才能看清本质。我们可以从最简单的定义出发,利用理性思维建立这些理论。做题是学习数论的必经途径,你需要在不断地思考中才能有更深刻的理解,但这里我只打算叙述最基础的思想和结论。

    1. 整除

      数论研究整数本身(或自然数,语境自明),初等数论主要研究整数之间的关系。整数的运算中,加减是最平凡的,得不出什么深入的结论,从而乘除法是唯一可以着手的地方。考虑一个简单的等式(ma=b)(以后若不作特殊说明,所有符号表示整数),任何两个整数之间都可以有(m,a)这样的乘法运算,但却并不是所有整数都有等式中(a)与(b)的关系。为此,当(a e 0)时,定义满足等式的(a)能整除(b),或(b)被(a)整除,(a)称为(b)的约数,(b)称为(a)的倍数,记作(amid b),否则记为(a mid b)。

      仅从定义出发可以得到整除的许多基本性质,这里就不一一列举了,只给出一个最具代表性的:式子(1),即(a)的倍数的线性组合仍是(a)的倍数。整数集线性组合的这一性质体现了元素之间的共性,以后还会继续深究,这里先举一例来感受其意义。若(amid n,bmid n),则有(abmid nb,abmid na),进而有(abmid n(ax+by)),所以如果有(ax+by=1),则有(abmid n)。

    [amid b_{k},(k=1,2,cdots,n):Rightarrow: amid b_1x_1+b_2x_2+cdots+b_nx_n ag{1}]

      考虑(n)的所有倍数的集合({kn}),它的元素有无穷多个,且性质是平凡的,不多阐述。现在来考虑(n)的所有约数,显然它们是有限的,但我们似乎还得不出更多的结论。不妨先考察一类特殊的数:如果(p>1)除了(pm 1)和(pm p)外没有其它约数,(p)称为质数或素数,反之叫合数,今后我们会约定俗成地用(p,q)表示素数。直观上素数是不能再分解的数,它们是整数的基本因子,任何整数都可以通过有限步分解为素数的乘积。

      一个自然的问题是,这样的分解唯一吗?你固有的知识可能使你对这个问题相当地自信,但如果冷静思考地一番,就会发现这种自信其实是没有根据的。它的证明并不十分显然,这里通过反证法来推导。假设有某些整数的素数分解不唯一,则存在最小的这样的数,并设它有两个分解式(a=p_1p_2cdots p_n=q_1q_2cdots q_m),其中(m,n>1),并且素数按大小排列。由(a)的最小性知(p_i e q_j),假设(p_1>q_1),考察式(2)。容易证明后一分解式中不含(q_1),从而(b<a)有两个不同的分解式。这与(a)的最小性矛盾,故所有整数都存在唯一的的素数分解式,即表达式(3)唯一。这个证明最早由高斯给出,被称为算术基本定理,它使得整数可以被完全解析。

    [b=a-q_1p_2cdots p_n=q_1(q_2cdots q_m-p_2cdots p_n)=(p_1-q_1)p_2cdots p_n ag{2}]

    [a=p_1^{e_1}cdot p_2^{e_2}cdotcdots p_s^{e_s} ag{3}]

      现在来看数(a)的所有约数,容易知道它们的分解式必定是式子(4)。若记(a)共有( au(a))个约数,且它们的和为(sigma(a)),则有公式(5)(6)。

    [p_1^{e'_1}cdot p_2^{e'_2}cdotcdots p_s^{e'_s},quad(0leqslant e'_kleqslant e_k) ag{4}]

    [ au(a)=prod_{k=1}^s{ au(p_k^{e_k})}=prod_{k=1}^s{(e_k+1)} ag{5}]

    [sigma(a)=prod_{k=1}^s{sigma(p_k^{e_k})}=prod_{k=1}^s{dfrac{p_k^{e_k+1}-1}{p_k-1}} ag{6}]

      来思考几个问题热热身吧:

       求满足( au(n)=6)的最小整数;

       求(sumlimits_{dmid a}{dfrac{1}{d}})的值。

    2. 公约数

       有了算术基本定理,整数之间的倍数关系就基本清楚了。而对于两个任意的整数(不一定有倍数关系),只能通过它们共同的约数或倍数来取得联系。两个数(a,b)共同的约数称为它们的公约数,最大的那个叫最大公约数,记作((a,b)),类似还有公倍数最小公倍数([a,b])的概念,最大公约数为(1)的两个数称为互素既约的。这些概念都有一些比较简单的性质,可以通过算术基本定理去证明,后面会罗列。公约(倍)数为研究整数之间的关系提供了便利,但它们的定义并不依赖于算术基本定理,你完全可以仅从定义出发得到那些常用结论,算术基本定理只是提供了一种方法而已。

      公约数一定程度上体现了整数之间的相关程度,互素则表现了整数之间的无关性。这个观念为我们分析整数集的结构提供了一个好的思想,不大于(m)的所有数可以按照和(m)的相关程度分类,这个话题我们会在后面展开。现在来考虑一下与(m)无关的(互素)数的个数(varphi(m)),对素数(p)显然有(varphi(p)=p-1)和(varphi(p^e)=p^{e-1}(p-1)),利用容斥原理排除掉不互素的数之后可以得到公式(7)(下一篇会有另一种方法证明)。

    [varphi(m)=mprod_{k=1}^s{(1-dfrac{1}{p_k})}=prod_{k=1}^s{varphi(p_k^{e_k})} ag{7}]

      算术基本定理虽然很强大,但用它来求公约数或进行整数关系分析的代价太大,并且也很难得到进一步的结论,这时必须引入别的工具。在不做素数分解的情况下,分析整数关系最直观的方法就是带余除法,对任意整数(a e 0,b),存在唯一数对(m,r)满足式子(8)。由(r=b-ma)知(a,b)的公约数必定是(r)的约数,并且(r)更小。如果继续对(a,r)做这样的运算,我们一定可以得到(a,b)的最大公约数。这便是辗转相除法的基本思想,早在欧几里得的《几何原本》中就有记载(故又称Euclid算法),熟悉算法的你一定也不陌生,这里就不展开细节了。

    [b=ma+r,quad(0leqslant r<left|a ight|) ag{8}]

      带余除法为整数的分析提供了一个简单有效的方法。比如我们再回头考虑一下式(1)中的所有线性组合,首先((b_1,b_2,cdots,b_n))显然也是每个线性组合的约数。考察线性组合中的最小正数(c),如果它不是(b_k)的约数,使用带余除法(b_k=mc+r),(r=b_k-mc)也是线性组合但却更小。所以(c)是(b_1,b_2,cdots,b_n)的公约数,结合刚才的结论可知(c=(b_1,b_2,cdots,b_n))。

      最大公约数可以看做是整数间的一个基本代数运算,我们已经看到有很多不同的途径来得到它,而这些途径并不依赖于最大公约数的定义。这就让我们想到,其实可以将它们看成是最大公约数的等价定义,在不同的场合灵活使用,可以得到更简洁的方法。以下便列举了这些等价定义,你可以尝试证明它们的等价性。

      (1)原始定义:最大的公约数;

      (2)约数的公倍数:是所有公约数的最小公倍数;

      (3)素数基本定理:素数分解式的公共部分;

      (4)线性组合:线性组合的最小正数;

      (5)辗转相除法:辗转相除法得到的最小正数。

      作为一个基本运算,需要稍微研究一下最大公约数的基本性质,请尝试通过不同途径证明下面的基本性质:

      (1)(m(a_1,a_2,cdots,a_n)=(ma_1,ma_2cdots,ma_n));

      (2)((a_1,a_2,cdots,a_n)=((a_1,a_2),cdots,a_n));

      (3)若((m,a)=1),则有((a,mb)=(a,b));

      (4)若(mmid ab,(m,a)=1),则(mmid b);

      (5)若(amid m,bmid m,(a,b)=1),则(abmid m);

      (6)((a,b)[a,b]=ab)。

      公约数虽然定义简单,但却变化多端,当和其它知识结合起来时,问题会变得很困难。你需要熟练掌握初等数学中各种变形技巧,并需要足够的想象力和创造力。课本中的习题是最好的锻炼场所,你不能绕过那一步,这里仅列几例以抛砖引玉。

       已知(ad-bc=pm 1),(u=am+bn,w=cm+dn),求证((u,w)=(m,n));

       (a)为奇数,则必有(d<a)使得(amid 2^d-1)。设这样数最小为(d_0),则(amid 2^h-1)成立的充要条件是(d_0mid h);

       证明梅森(Mersenne)数(M_p=2^p-1)两两互素;

       求证(1+dfrac{1}{2}+cdots+dfrac{1}{n})不是整数;(提示:构造一个整数与之相乘后不为整数)

       若((a,b)=1),则对任意(m),(a+kb,k=0,1,2,cdots)中有无数个与(m)互质的数。(提示:无穷递降)

    3. 闲话素数

      话说素数的确非常重要,后面我们还会看到它更多的性质,这里再多说两句。首先,欧几里得在《几何原本》回答了素数的个数问题,假设仅有有限个素数(p_1,p_2,cdots,p_n),考察表达式(p_1p_2cdots p_n+1)。它不以任何(p_k)为约数,从而它也是素数,与假设矛盾,这就证明了素数有无穷多个。该证明使用了构造法和反证法,它的美妙是数学史上惊艳的一笔,你不妨可以用同样的方法解决以下问题。

       相邻素数之间的间隔可以有任意大;

       证明费马数(F_n=2^{2^n}+1)的素因子互不相同,从而素数有无穷多个;

       使用数列(a_{n+1}=a_n^2-a_n+1,(a_0=2)),证明素数有无穷多个;

       求证形如(4k+3)的素数有无穷多个;

       如果(nmid (n-1)!-1),则(n)必为素数。

      根据算术基本原理,并使用级数理论(后续课程),容易有以下著名的欧拉公式(式子(9))。这个神奇的公式将调和级数与所有素数扯上了关系,这也成为了研究素数的一个突破口,巍峨耸立的黎曼猜想就是对它的扩展研究。顺便提一句,因为调和级数是发散的,故由此此也可以证明素数有无穷多个。

    [1+dfrac{1}{2}+cdots+dfrac{1}{n}+cdots=prod_{k=1}^{infty}{(1-dfrac{1}{p_k})^{-1}} ag{9}]

      关于素数,还有一些自然的问题是:如何判定一个数是否为素数?如何找出一定范围内的所有素数?它们的分布是怎样的?是否有素数的通项公式?这些问题是很难回答的,它们也是数论的难点,很多问题都还没有被解决。古希腊时期的Eratosthenes筛法是目前仍在使用的筛选素数的方法,它逐步划去每个素数的倍数,从而仅余下素数,这在一般的算法教材里都有介绍。另外一般用(pi(x))表示不大于(x)的素数的个数,公式(10)是就是著名的素数定理,它表明了素数的平均密度。该定理最早由勒让德和高斯作为猜想提出,将近一百年后才被人用复变函数的理论所证明,再过了50年才有了初等证法。关于素数的问题我们就不深究了,它们也不是这里能回答得了的。

    [pi(x)sim dfrac{x}{ln{x}},quad(x oinfty) ag{10}]

  • 相关阅读:
    HDU 3537 Daizhenyang's Coin(博弈,翻硬币)
    【转】博弈-翻硬币游戏
    QRCode.js:使用 JavaScript 生成二维码
    3种高效的Tags标签系统数据库设计方案分享
    CI框架+Umeditor上传图片配置信息
    【军哥谈CI框架】之CI中集成百度UEditor
    【ci框架基础】之部署百度编辑器
    CI框架中集成CKEditor编辑器的教程
    如何将文本编辑器嵌入框架--以Umeditor&CodeIgniter框架为例
    ****CI和UEditor集成
  • 原文地址:https://www.cnblogs.com/edward-bian/p/4390286.html
Copyright © 2011-2022 走看看