当概率遇上复变:解析概率
By 苏剑林 | 2014-04-25 | 30311位读者 | 引用每当看到数学的两个看似毫不相关的分支巧妙地联系了起来时,我总会为数学的神奇美丽惊叹不已。在很久以前,当我看到通过生成函数法把数论问题与复变函数方法结合起来,衍生出一门奇妙的“解析数论”时,我就惊叹过生成函数法的漂亮!可惜,一直都没有好好写整理这些内容。今天,当我在看李政道先生的《物理学中的数学方法》时,看到他把复变函数跟随机游动如鬼斧神工般了起来,再次让我拍案叫绝。最后实在压抑不住心中的激动,在此写写概率论和生成函数的事情。
数论与复变函数结合,就生成了一门“解析数论”,按照这个说法,概率与复变函数结合,应该就会有一门“解析概率”,但是我在网上搜索的时候,并没有发现这个名词的存在。经过如此,本文还是试用了这个名词。虽然这个名词没有流行,但事实上,解析概率的方法并不算新,它可以追溯到伟大的数学家拉普拉斯以及他的著作《分析概率论》中。尽管如此,这种巧妙漂亮的方法似乎没有得到大家应该有的充分的认识。
我觉得,即使作为一个简洁的计算工具,生成函数法这个美丽的技巧,也应该尽可能为科学爱好者所知,更不用说数学专业的朋友了。
两百万前素数之和与前两百万素数之和
By 苏剑林 | 2014-06-10 | 76376位读者 | 引用初试在Python中使用PARI/GP
By 苏剑林 | 2014-07-22 | 32501位读者 | 引用集合上的一个等价关系决定了几何的一个划分,反之亦然,这直观上是不难理解的。但是,如果我要问一个有$n$个元素的有限集合,共有多少种不同的划分呢?以前感觉这也是一个很简单的问题,就没去细想,但前天抽象代数老师提到这是一个有相当难度的题目,于是研究了一下,发现里面大有文章。这里把我的研究过程简单分享一下,读者可以从中看到如何“从零到有”的过程。
以下假设有$n$个元素的有限集合为$\{1,2,\dots,n\}$,记它的划分数为$B(n)$。
前期:暴力计算
$n=3$的情况不难列出:
$$\begin{aligned}&\{\{1,2,3\}\},\{\{1,2\},\{3\}\},\{\{1,3\},\{2\}\},\\
&\{\{2,3\},\{1\}\},\{\{1\},\{2\},\{3\}\}\end{aligned}$$
从费马大定理谈起(十一):有理点与切割线法
By 苏剑林 | 2014-10-24 | 28660位读者 | 引用我们在这个系列的文章之中,探索了一些有关环和域的基本知识,并用整环以及唯一分解性定理证明了费马大定理在n=3和n=4时的情形。使用高斯整数环或者艾森斯坦整数环的相关知识,相对而言是属于近代的比较“高端”的代数内容(高斯生于1777年,艾森斯坦生于1823年,然而艾森斯坦英年早逝,只活到了1852年,高斯还活到了1855年。)。如果“顺利”的话,我们可以用这些“高端”的工具证明解的不存在性,或者求出通解(如果有解的话)。
然而,对于初等数论来讲,复数环和域的知识的门槛还是有点高了。其次,环和域是一个比较“强”的工具。这里的“强”有点“强势”的意味,是指这样的意思:如果它成功的话,它能够“一举破城”,把通解都求出来(或者证明解的不存在);如果它不成功的话,那么往往就连一点非平凡的解都求不出来。可是,有些问题是求出一部分解都已经很困难了,更不用说求出通解了(我们以后在研究$x^4+y^4 = z^4 + w^4 $的整数解的时候,就能深刻体会这点。)。因此,对于这些问题,单纯用环域的思想,很难给予我们(至少一部分)解。(当然,问题是如何才算是“单纯”,这也很难界定。这里的评论是比较粗糙的。)
在Python中使用GMP(gmpy2)
By 苏剑林 | 2014-10-28 | 70896位读者 | 引用之前笔者曾写过《初试在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。
这学期的数学建模课,对笔者来说,基本上就是一个锻炼论文写作和Python技能的过程。不过是写论文还是写博客,我都致力于写出符合自己审美观的作品,因此我才会选择$\LaTeX$,我才会选择Python。$\LaTeX$写出来的科学论文是公认的标准而好看的格式,而Python,的确可以作出漂亮的图,也可以简洁地完成所需要的数值计算。我越来越发现,在数学建模、写作方面,除了必不可少的符号推导部分(这部分只能用Mathematica),我已经离不开Python了。
为什么还要求漂亮?内容好不就行了吗?的确,内容才是主要的,但是如果能把展示效果美化一下,而且又不耗费更多的功夫,那么何乐而不为呢?
有限素域上的乘法群是循环群
By 苏剑林 | 2015-01-20 | 86820位读者 | 引用对于任意的素数$p$,集合$\mathbb{Z}_p=\{0,1,2,\dots,p-1\}$在模$p$的加法和乘法之下,构成一个域,这是学过抽象代数或者初等数论的读者都会知道的一个事实。其中,根据域的定义,$\mathbb{Z}_p$首先要在模$p$的加法下成为一个交换群,而且由于$\mathbb{Z}_p$的特殊性,它还是一个循环群,这也是比较平凡的事实。但是,考虑乘法呢?
首先,$0$是没有逆元的,我们考虑乘法,是在$\mathbb{Z}^\cdot _p=\mathbb{Z}_p \verb|\| \{0\}=\{1,2,\dots,p-1\}$上考虑的。如果我说,$\mathbb{Z}^\cdot _p$在模$p$之下的乘法也作成一个循环群,这结论就不是很平凡的了!然而这确实是事实,对于所有的素数$p$均成立。而有了这事实,数论中的一些结论就会相当显然了,比如当$d\mid (p-1)$时,$\mathbb{Z}_p$中的$d$次剩余就只有$\frac{p-1}{d}$个了,这是循环群的基本结论。
在《数学天书中的证明》一书中,有该结论的一个证明,但这个证明是存在性的,而我在另外一本书上也看到过类似的存在性证明,也就是说,似乎流行的证明都是存在性的,它告诉我们$\mathbb{Z}^\cdot _p$是一个循环群,但是没告诉我们怎么找到它的生成元。而事实上,高斯在他的《算术探索》中就给出了一个构造性的证明。(在数论中,本文的结论是“原根”那一章的基本知识。)下面笔者正是要重复高斯的证明,供读者参考。
最近评论