15 Mar

不求珍馐百味,但愿开水白菜

开水白菜 (1)

开水白菜 (1)

如果要用做菜来比喻人生的话,我觉得,人生最高的境界之一便是开水白菜。

点击阅读全文...

11 Jun

用PyPy提高Python脚本执行效率

《两百万前素数之和与前两百万素数之和》中,我们用Python求了前两百万的素数和以及两百万前的素数和,并且得到了在Python 3.3中的执行时间如下:

两百万前的素数之和:
142913828922
time: 2.4048174478605646

前两百万的素数之和:
31381137530481
time: 46.75734807838953

于是想办法提高python脚本的执行效率,我觉得在算法方面,优化空间已经比较小了,于是考虑执行器上的优化。在搜索的无意间我看到了一个名词——Psyco!这是python的一个外部模块,导入后可以加快.py脚本的执行。网上也有《用 Psyco 让 Python 运行得像 C一样快》、《利用 psyco 让 Python 程序执行更快》之类的文章,说明Psyco确实是一个可行的选择,于是就跃跃欲试了,后来了解到Psyco在2012年已经停止开发,只支持到Python 2.4版本,目前它由 PyPy所接替。于是我就下载了PyPy

点击阅读全文...

25 Apr

当概率遇上复变:解析概率

每当看到数学的两个看似毫不相关的分支巧妙地联系了起来时,我总会为数学的神奇美丽惊叹不已。在很久以前,当我看到通过生成函数法把数论问题与复变函数方法结合起来,衍生出一门奇妙的“解析数论”时,我就惊叹过生成函数法的漂亮!可惜,一直都没有好好写整理这些内容。今天,当我在看李政道先生的《物理学中的数学方法》时,看到他把复变函数跟随机游动如鬼斧神工般了起来,再次让我拍案叫绝。最后实在压抑不住心中的激动,在此写写概率论和生成函数的事情。

数论与复变函数结合,就生成了一门“解析数论”,按照这个说法,概率与复变函数结合,应该就会有一门“解析概率”,但是我在网上搜索的时候,并没有发现这个名词的存在。经过如此,本文还是试用了这个名词。虽然这个名词没有流行,但事实上,解析概率的方法并不算新,它可以追溯到伟大的数学家拉普拉斯以及他的著作《分析概率论》中。尽管如此,这种巧妙漂亮的方法似乎没有得到大家应该有的充分的认识。

我觉得,即使作为一个简洁的计算工具,生成函数法这个美丽的技巧,也应该尽可能为科学爱好者所知,更不用说数学专业的朋友了。

点击阅读全文...

25 Apr

傅里叶变换:只需要异想天开?

在对数学或物理进行事后分析,往往会发现一些奇怪的现象,也有可能得到一些更为深刻有趣的结果。比如本文所要谈及的傅里叶变换,可以由一种“异想天开”的思路得来。

洛朗展式

我们知道,在原点处形态良好的函数,可以展开为泰勒级数
$$f(x)=\sum_{n=0}^{\infty}a_n x^n$$
我们发现,上面的幂都是正的,为什么不能包含$x$的负数次幂呢?比如$\frac{\sin z}{z^2}$展开为
$$\frac{1}{z}-\frac{z}{6}+\frac{z^3}{120}\dots$$
显然也是一件合理的事情。于是,结合复变函数,我们得到解析函数的洛朗展式
$$f(z)=\sum_{n=-\infty}^{+\infty}a_n z^n$$
这是函数的双边展开。其中

点击阅读全文...

30 Apr

当概率遇上复变:随机游走基本公式

笔者发现,有很多概率问题,尤其是独立重复实验问题,如果用生成函数的方法来做,会显得特别方便。本文要讲的“随机游走”问题便是其中一例,它又被形象地叫做“醉汉问题”,其本质上是一个二项分布,但是由于取了极限,出现了很多新的性质和应用。我们先考虑如下问题:

考虑实数轴上的一个粒子,在$t=0$时刻它位于原点,每过一秒,它要不向前移动一格(+1),要不就向后移动一格(-1),问$n$秒后它所处位置的概率分布。

点击阅读全文...

10 Jun

两百万前素数之和与前两百万素数之和

标题说了两道比较好玩的编程题,如果读者觉得标题绕的让人眩晕的话,那么让我再说得清晰一点:

两百万前素数之和指的是所有不超过两百万的素数的和;
前两百万素数之和指的是前两百万个素数的和。

我是从子谋的blog中看到这道题目的,前一道题目是Project Euler的第10题,后一道则是我跟子谋探索着玩的。关于子谋的研究和代码,大家可以去他的blog上学习。本文分享一下我自己的想法。

点击阅读全文...

6 Jul

齐次多项式不等式的机器证明(差分代换)

在高中阶段,笔者也像很多学生一样参加过数学竞赛,而在准备数学竞赛的过程中,也做过一些竞赛题,其中当然少不了不等式题目。当时,面对各种各样的不等式证明题,我总是非常茫然,因为看到答案之后,总感觉证明的构造非常神奇,但是每当我自己独立去做时,却总想不出来。于是后来就萌生了“有没有办法可以通用地证明这些不等式?”的想法。为了实现这个目的,当时就想出了本文的技巧——通过牺牲计算的简便性来换取证明的有效性。后来,我虽然没有走上数学竞赛这条路,但这个方法还是保留了下来,近日,在和数学研发论坛的朋友们讨论不等式问题时,重新拾起了这个技巧。

此前,在本博客的文章《对称多项式不等式的“物理证明”》中,已经谈到了这个技巧,只是限制于当时的知识储备,了解并不深入。而在本文中,则进行拓展了。这个技巧在当时是我自己在证明中独立发现的,而现在在网上查找时发现,前辈们(杨路、姚勇、杨学枝等)早已研究过这个技巧,称之为“差分代换”,并且已经探究过它在机器证明中的作用。该技巧可以很一般化地用于齐次/非其次不等式的证明,限于篇幅,本文只谈齐次多项式不等式,特别地,是对称齐次多项式不等式,并且发现某些可以简化之处。

点击阅读全文...

30 Aug

从费马大定理谈起(八):艾森斯坦整数

Gotthold_Eisenstein

Gotthold_Eisenstein

是时候向n=3进军了,为了证明这个情况,我们需要一个新的数环:艾森斯坦整数(Eisenstein Integer)。艾森斯坦是德国著名数学家,同时代的高斯曾经评价:“只有三个划时代的数学家:阿基米德,牛顿和艾森斯坦。”足见艾森斯坦的成就斐然。事实上,阅读费马大定理的研究史,同时也是在阅读数学名人录——没有超高的数学,几乎不可能在费马大定理中有所建树。

基本定义

跟高斯整数一样,艾森斯坦整数也是复整数的一种,其中,高斯整数是以1和$i$为基,$i$其实是一个四次单位根,也就是$x^4-1=0$的一个非实数根,因此高斯整数也叫做四次分圆整数;而艾森斯坦整数以1和$\omega$为基,$\omega$是三次单位根,也就是$x^3-1=0$的一个非实数根。任意一个艾森斯坦整数都可以记为$a+b\omega,\,a,b\in\mathbb{Z}$,艾森斯坦整数环记为$\mathbb{Z}[\omega]$,也称为三次分圆整数环

点击阅读全文...