15 Aug

从费马大定理谈起(一):背景简介

费马大定理,也叫做费马最后定理(Fermat Last Theorem),说的是

设$n$是大于2的正整数,则不定方程$x^n+y^n=z^n$没有全不为0的整数解。

Pierre_de_Fermat

Pierre_de_Fermat

稍微阅读过数学史的朋友应该知道,该定理首先于1637年由法国业余数学家费马(Pierre de Fermat)在阅读丢番图《算术》拉丁文译本时写在第11卷第8命题旁写道。他并附加道:“我发现了一个非常漂亮的证明,但这里没有足够的空间可容纳得下。”根据后世的考证,费马或许有办法证明n=3,4,5的情形,但不大可能给出一般性的证明,因为在20世纪90年代,怀尔斯用了130页的纸张,而且用到了复杂的现代理论,才完全证明了费马大定理。所以费马当时的这一断言,更可能只是一个归纳猜测。

点击阅读全文...

17 Jul

强大的整数数列网站OEIS

OEIS?:http://oeis.org/

近段时间在研究解析数论,进一步感觉数论真是个奇妙的东西,通过它,似乎数学的各个方面——离散的和连续的,实数的和复数的,甚至物理的——都联系了起来。由此也不难体会到当初高斯(Gauss)会说“数学是科学的皇后,数论是数学的皇后。”了。今天,由于在研究素数的个数的上下界问题时,需要思考组合数
$$C_{n}^{2n}=\binom{2n}{n}=\frac{(2n)!}{n!\ n!}$$
最多能被2的多少次方整除。直觉告诉我,次数应该是随着$n$的增大而增大的,但事实却不是,比如$C_{15}^{30}$能够被16整除,但是$C_{20}^{40}$却最多只能被4整除,有种毫无规律的感觉,于是到群里问问各大神。其中,wayne提出

这个可以写个小程序算出一些数据,再在oeis上搜搜

点击阅读全文...

22 Jul

初试在Python中使用PARI/GP

BoJone很喜欢Python,也很喜欢数论,所以就喜欢利用Python玩数论了。平时也喜欢自己动手写一些数论函数,毕竟Python支持大整数高精度运算,这点是非常好的;但是,在很多实际应用中,还是希望能有一个现成的数论函数库来调用。之前尝试过数学研发网的HugeCalc库,但是由于各种不熟悉不了了之。后来论坛上的无心老兄推荐了PARI/GP,小试一下,居然在Python上成功调用了。以后再也不用担心Python上的数论计算问题了,呵呵~

点击阅读全文...

30 Jul

素数之美1:所有素数之积

在之前的欧拉数学中,我们计算过所有素数的倒数之和,得出素数的倒数之和是发散的,从而这也是一个关于素数个数为无穷的证明。在本篇文章中,我们尝试计算所有素数之积,通过一个简单的技巧,得到素数之积的一个上限(以后我们也会计算下限),从而也得到$\pi(n)$的一个上限公式。更重要的,该估计是初等地证明Bertrand假设(说的是n与2n之间定有一个素数)的重要基础之一。本文内容部分参考自《数学天书中的证明》和《解析和概率数论导引》。

素数之积

笔者已经说过,数论的神奇之处就是它总是出人意料地把数学的不同领域联系了起来。读者很快就可以看到,本文的证明和组合数学有重要联系(但仅仅是简单的联系)。关于素数之积,我们有以下结论:

不超过$n$的所有素数之积小于$4^{n-1}$。

点击阅读全文...

2 Aug

七夕-雨

七夕,想随便说一些。大家路过就行~~

印象之中,连续几年的七夕这一天都下雨,今天也下了一点雨。妈妈说七夕的雨是神仙水,很小的时候,如果七夕下雨,还专门装一些来洗澡。

牛郎织女相会了没有?

研究数学了。

16 Sep

生成函数法与整数的分拆

我们在高中甚至初中,都有可能遇到这样的题目:

设$x,y,z$是非负整数,问$x+y+z=2014$有多少组不同的解?(不同顺序视为不同的解)

难度稍高点,可以改为

设$x,y,z$是非负整数,$0\leq x\leq y\leq z$,问$x+y+z=2014$有多少组不同的解?

这些问题都属于整数的分拆问题(广为流传的哥德巴赫猜想也是一个整数分拆问题)。有很多不同的思路可以求解这两道题,然而,个人认为这些方法中最引人入胜的(可能也是最有力的)首推“生成函数法”。

关于生成函数,本节就不多作介绍了,如果缺乏相关基础的朋友,请先阅读相关资料了解该方法。不少数论的、离散数学的、计算机科学的书籍中,都介绍了生成函数法(也叫母函数法)。本质上讲,母函数法能有诸多应用,是因为$x^a\times x^b=x^{a+b}$这一性质的成立。

点击阅读全文...

28 Oct

在Python中使用GMP(gmpy2)

之前笔者曾写过《初试在Python中使用PARI/GP》,简单介绍了一下在Python中调用PARI/GP的方法。PARI/GP是一个比较强大的数论库,“针对数论中的快速计算(大数分解,代数数论,椭圆曲线...)而设计”,它既可以被C/C++或Python之类的编程语言调用,而且它本身又是一种自成一体的脚本语言。而如果仅仅需要高精度的大数运算功能,那么GMP似乎更满足我们的需求。

了解C/C++的读者都会知道GMP(全称是GNU Multiple Precision Arithmetic Library,即GNU高精度算术运算库),它是一个开源的高精度运算库,其中不但有普通的整数、实数、浮点数的高精度运算,还有随机数生成,尤其是提供了非常完备的数论中的运算接口,比如Miller-Rabin素数测试算法、大素数生成、欧几里德算法、求域中元素的逆、Jacobi符号、legendre符号等[来源]。虽然在C/C++中调用GMP并不算复杂,但是如果能在以高开发效率著称的Python中使用GMP,那么无疑是一件快事。这正是本文要说的gmpy2

点击阅读全文...

30 Oct

只有两个四阶群和六阶群

我们上近世代数课的时候,老师谈到在同构意义之下只有两个不同的四阶群,六阶群也是只有两个,还说到这是代数的研究生入学考试题目。说到这样了,我就饶有兴致地研究了一下,发现只有两个互不同构的四阶群这几乎是显然的,感觉这题用来做研究生考试题太水了吧?接着分析了一下六阶的情况,发现复杂了不少(元素增加)。而今天在实变函数课的时候,想到了一个简化的技巧,遂也证明了只有两个互不同构的六阶群。把结果和研究过程贴在这里,与大家分享。

两个四阶群

不管是四阶群还是六阶群,它们都是有限群。有限群的一个特点就是,可以把它们的乘法表写出来(只要不怕麻烦~~)。既然要研究四阶群的数目,我们只需要列出四阶群的乘法表就行了。设四阶群为$G_4=\{e, a, b, c\}$,其中$e$是单位元,根据这些信息,我们至少可以写出乘法表的一部分:
$$\begin{array}{c|cccc}
\cdot & e & a & b & c \\
\hline
e & e &a &b &c \\
a & a & & & \\
b & b & & & \\
c & c & & & \end{array}$$

点击阅读全文...