-
数论这章,其实看书中的内容,感觉东西也没那么多。当然,内容还是很好的,但整章中却没有太多对于逆元相关知识,要知道在数论这块逆元还是有很大作用的,所以这块要从其它书上找找看看补一下了。
整除性。书里让我很不舒服的一点是,它的整除符号不是“|”而是"\",我虽然不是不分左右但整除符号和除号“/”放在一起还是容易混淆,看起来费劲。基于整除性的讨论无非是gcd和lcm了,这也没什么难点。不过这里在欧几里得算法的正确性时引入的mm’+nn’=gcd(n,m)倒是恰好就是扩展欧几里得算法的核心式子,而且证明过程就是赋值m’=1,n’=0,恰好就是求解二元一次方程一组一般解时的做法。所以虽然没有单独去讨论扩展欧几里得算法,但通过这个也算是又复习了一下了,至于对于扩展欧几里得算法的通解及其它复杂应用还是到时候通过具体题目再看吧。
素数。这里让我很感兴趣的是对于算数基本定理唯一性的证明,当然也很简单。关键在于证明它利用的方法,对于一个数表示成一些素数乘积时(将这些素数以数列表示),那么这些素数的顺序上并没有什么意义(或者说其顺序对于这个题目的证明来说没有影响),所以我可以将任意一个数放在第一个位置p1,反之同样也可以说p1可以是任意一个素数,继而也可以由p1的某个性质反推到所有这些素数上。对于一个数的两个可能素因子序列,如果相同那么完全可以将任意两个相同的数放到p1位置,反过来推翻它就可以证明对于p1,∀qi,p1!=qi,继而证明得到∀pi,¬∃qi,pi=qi。当然,做不到,所以证明得到的是p1∈Q,继而得到∀pi,pi∈Q,且是一个恒等的双射,所以算数基本定理是唯一的。我感觉其思想方法与谓词逻辑中的ES,US,EG,UG规则有异曲同工之妙。
然后是判断和得到素数。(1)没想到埃筛竟然就是小小六七行字,当然,数学中只去讨论方法而不必去考虑实际应用时的复杂度问题,手工实现的话只要不傻都会不自觉的使用了线筛了,所以可能也没必要太多讨论。(2)欧几里得数:e1=2,en=e1e2···e(n-1)+1。个人感觉这个东西没多少用。它的性质是任意两个欧几里得数都是互素的。(3)梅森数:x=2^p-1(p为素数)则称x为梅森数,如果x为素数则称为梅森素数。但同样,梅森数也并不全是素数,所以除却定义找不到其它什么有用的地方,提及梅森数可以应用于大数分解与素性检验,但没说方法,所以就暂且记一记吧。
阶乘的因子。这里就是相当于对阶乘数(即阶乘的值)应用算术基本定理分解素因子。同样的,他不会去考虑复杂性问题,而我们做题要考虑的。
互素。m⊥n⇔m,n是整数,且gcd(m,n)=1。对这个定义还可以写作对于∀p是素数,都有min(np,mp)=0,(mp,np指m,n素因子p的指数)。由此还能继续得到k⊥m,k⊥n⇔k⊥mn。这里还提出了一种关联,即所有最简分数m/n都有m⊥n,所以由所有素数即可构造出整个实数系,Stern-Brocot树就这样诞生了。由两个分数(m/n,m’/n’)即(0/1和1/0)(作为这个二叉树的两个虚结点)出发,无限次在两分数间插入(m+m’)/(n+n’)这一分数(称之为中位分数)即可得到这个二叉树,由它得到所有分数。至于这一二叉树如何得到,下一个问题就给出了。法里级数,即对于阶为n的法里级数就是0~1间所有分母不超过n的最简分数的集合(也就是说是很多个分数),表示的反而恰好就是Stern-Brocot树的根节点加上它的左子树再加上左虚结点(即0或者0/1是必要的而0/2等不再多余),书中顺便给出了其编程得到的方法,即利用2×2矩阵递归得到,当然由于矩阵阶数很小所以直接将矩阵的运算法则表示出来也可以。对于每个分数在二叉树中的路径还可以记录下来以字符串或者二进制串对其进行标识。至于具体应用,希望遇到问题能够想得到,并且派上用场吧。
暂时先整理这些吧。
数论(1)
最新推荐文章于 2024-06-02 10:03:11 发布