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 Mar

如何看费曼的讲义和朗道的教程?

本文很荣幸得到了高教社的王超编辑(新浪微博 @朗道集结号 )在微信上的推荐,在此表示十分的感谢。

朗道集结号
朗道、费曼、薛定谔、泡利、狄拉克、温伯格……大师在这里等着你,微信号:ldjjhwx

费曼&朗道

费曼&朗道

事实上,取这个标题,有点狂妄自大、班门弄斧的感觉。原因之一是我自己并非物理专业学生,也没有学好物理。再者,我自己也没有读过多少费曼和朗道的书,谈不上“饱读”费曼朗道,又何以指导大家呢?

但是,结合自己在阅读他们的著作的感受,以及自己学习科学的过程,谈谈我对他们的著作的看法。

什么才是最简洁的方式?

相信不少读者觉得朗道的教程比费曼的讲义要深,感觉朗道的书总有大量的数学公式,而费曼的书则轻松一些。笔者开始也有这样的感觉,但是慢慢读下去,才感到费曼的书甚至比朗道的困难。

在进入讨论之前,我们不妨先想一下:什么才是理解物理的最简洁方式?数学越复杂,就越不好吗?

点击阅读全文...

25 Mar

一本对称闯物理:相对论力学(二)

从这个系列的第一篇文章到本文,已经隔了好多天。其实本文的内容是跟第一篇的内容同时完成的,为什么这么久才更新呢?原因有二,其一是随着春天的到来人也开始懒起来了,颓废呀~;其二,我在思考着规范变换的问题。按照朗道《场论》的逻辑,发展完质点力学理论后,下一步就是发展场论,诸如电磁场、引力场等。但是场论中有个让我比较困惑的东西,即场论存在着“规范不变性”。按照一般观点,我们是将规范不变性看作是电磁场方程的一个结果,即推导出电磁场的方程后,“发现”它具有规范不变性。但是如果用本文的方法,即假定场有这种对称性,然后就可以构建出场方程了。可是,为什么场存在着规范不变性,我还未能思考清楚。据我阅读到的资料来看,这个不变性似乎跟广义不变性有关(电磁场也是,这似乎说明即使在平直时空的电磁场理论中也暗示了广义不变性?)。还有,似乎这个不变性需要在量子场论中才能得到比较满意的解释,可是这样的话,就离我还很远了。

好吧,我们还是先回到相对论力学的推导中。

“无”中生有

上一篇文章我们已经构建了相对论力学的无穷小生成元,并进行了延拓。我已经说过,仅需要无穷小的变换形式,就可以构建出完成的相对论力学定律出来(当然这需要一些比较“显然”的假设)。这是个几乎从“无”到有的过程,也是本文标题的含义所在。另一方面,这种从局部到整体的可能性,也给我们带来一些启示:假如方法是普适的,那么可以由此构造出我们需要的物理定律来,包括电磁场、引力场方程等。(当然,我离这个目标还有点远。)

点击阅读全文...

21 Apr

数独的自动推理

写在前面:作为离散数学的实验作业,我选择了研究数独。经过测试发现,数独的自动推理还不算难,我把两种常规的推理思路转化为了计算机代码,并结合了随机性推导,得到了一个解题能力还不错的数独程序。事实上,本文的程序还可以进一步优化,以得到更高能力的数独程序(只需要整理一下代码,加上几个循环和判断即可),但是我实在太懒,没有动力继续弄下去了,就这样先和大家分享吧。最后,笔者认为本文的算法是更接近我们的思维的算法。

数独简介

历史

相传数独源起于拉丁方阵(Latin Square),1970年代在美国发展,改名为数字拼图(Number Place)、之后流传至日本并发扬光大,以数学智力游戏智力拼图游戏发表。在1984年一本游戏杂志《パズル通信ニコリ》正式把它命名为数独,意思是“在每一格只有一个数字”。后来一位前任香港高等法院的新西兰籍法官高乐德(Wayne Gould)在1997年3月到日本东京旅游时,无意中发现了。他首先在英国的《泰晤士报》上发表,不久其他报纸也发表,很快便风靡全英国,之后他用了6年时间编写了电脑程式,并将它放在网站上,使这个游戏很快在全世界流行。

台湾于2005年5月由“中国时报”首度引进, 且每日连载, 亦造成很大的回响。台湾数独发展协会(Taiwan Sudoku Association, 简称 TSA)亦为世界解谜联盟会员。香港是在2005年7月30日由AM730在创刊时引入数独。中国大陆是在2007年2月28日正式引入数独。北京晚报智力休闲数独俱乐部(数独联盟前身)在新闻大厦举行加入世界谜题联合会的颁证仪式,成为世界谜题联合会的39个成员之一。(引用自“中文维基百科”: http://zh.wikipedia.org/wiki/数独

点击阅读全文...

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$秒后它所处位置的概率分布。

点击阅读全文...

4 May

[问题解答]运煤车的最大路程(更正)

刚刚在浏览卢昌海大师的微博时,发现他微博上有一道比较有趣的题目,于是饶有兴致地思考了一翻,构思了一个答案,希望读者们看看这个答案有问题不?

五一”长假微博很闷,出一道题给博友们解闷:

用重载列车运煤,每次可装1万吨,每行驶1公里耗煤1吨,起点处共有N万吨煤(简单起见N为正整数),请问最远可运至何处(是国营煤老板,成本不计,只要运到的数量大于0就算成功)?并求$N\to\infty$时的渐进形式。

点击阅读全文...

4 Jun

当概率遇上复变:随机游走与路径积分

我们在上一篇文章中已经看到,随机游走的概率分布是正态的,而在概率论中可以了解到正态分布(几乎)是最重要的一种分布了。随机游走模型和正态分布的应用都很广,我们或许可以思考一个问题,究竟是随机游走造就了正态分布,还是正态分布造就了随机游走?换句话说,哪个更本质些?个人就自己目前所阅读到的内容来看,随机游走更本质些,随机游走正好对应着普遍存在的随机不确定性(比如每次测量的误差),它的分布正好就是正态分布,所以正态分布才应用得如此广泛——因为随机不确定性无处不在。

下面我们来考虑随机游走的另外一种描述方式,原则上来说,它更广泛,更深刻,其大名曰“路径积分”。

点击阅读全文...