临溪笔记

用迷宫困住死理性派?没门!

这是一种充满复杂通道的建筑物,很难找到从其内部到达入口或从入口到达中心的道路。在世界的不同文化发展时期,这些奇特的建筑物始终吸引人们沿着弯弯曲曲、困难重重的小路吃力地行走,寻找真相。还在找出口吗?不妨看看死理性派是怎么走迷宫的吧。

迷宫的历史和它的结构

迷宫最早出现于希腊神话中——用来囚禁 克里特岛国王 米诺斯 的半人半牛的怪物儿子 弥诺陶洛斯 。米诺斯每年都会送 7 对童男童女进来供他儿子享用。后来在米诺斯女儿阿里阿德涅的帮助下,雅典英雄 忒修斯 靠着一团金线,摸进迷宫顺利地杀死了这头怪物。

早期的一些绘画艺术还原了这座传说中克里特岛迷宫。很多人发现,这座迷宫虽然很绕,却并没有岔路,只要“一条道走到黑”,就能来到中心。也就是 欧拉路径 ,即从迷宫的入口到中心遍历了所有的边且没有重复。

从左至右:迷宫中的弥诺陶洛斯,14世纪杰里科地图,克里特式迷宫。 图像来源:Wikipedia

想象一根有限长的绳子,如果要用这根绳子来围成一条路径,且使得人在走这条路径的时间花费尽量长,那么最直接的方法就是建造这样的“克里特式迷宫”,让线圈紧密地盘绕再盘绕。

克里特式迷宫可以当做很美的装饰画,也能在工业实践中得到广泛应用,但它因为没有极具迷惑性的岔路,“迷”的属性并不算突出。因此后来就从这种最初的迷宫中,又发展出了各类复杂的迷宫。

从数学上来说,形状奇怪、看起来让人眼花缭乱的各种各样的迷宫,无非是一个图。当我们不考虑各结点的具体位置,而只考虑其相对位置,也不考虑各条边的具体长度和形状时,就可以把迷宫的拓扑结构画出来。

对于非克里特型迷宫(克里特型迷宫中没有分岔和歧路,不能用“图”表示),可根据其拓扑结构分为两大类,单连通的和多联通的。单连通的迷宫,图中没有回路。多联通的迷宫,图中包含回路。那如何判断一张迷宫地图是单连通的还是多联通的呢?只要看它的墙的结构就行了:如果迷宫中的墙都是互相连着的,那它就是单连通的;如果迷宫中有孤立的、不与其他墙相连的墙,这个迷宫就是多联通的。迷宫的类型不同,在其中行走到达目的地的策略也就不同。

破解黑暗中的迷宫

对于事先我们并不知晓全貌的迷宫,或者即使我们能了解到它的全貌(比如一些旅游景点中的迷宫),但置身其中时仍会有“旁观者清,当局者迷”的感觉。这样的迷宫该如何破解呢?

当然,你可以选择神话中忒修斯拉线绳的方法——如果你有足够长的绳子的话,这无疑是最保守和安全的方法。但这里要介绍的几种比它巧妙的多的方法。

首先就是“左/右手法则”方法。顾名思义,就是进入迷宫后,选择一个方向,之后贴着墙壁一直走下去。这是最常见的走迷宫方法,其原理其实在上面“克里特式迷宫”中也已提到,就在于考察迷宫的拓扑结构,无论围墙是多么的蜿蜒曲折,把它抻直了也就是一根线段而已,迷宫的出入口分别对应着这条线段的两个端点。我们从入口进(或者选择该条线段上任意一点开始),沿着这条线笔直走下去,当然会走到出口。但这个法则也时常有失灵的时候。因为它的前提是“入口和出口都在一条线段上”,也就是说这堵墙必须是连通的才行,而如果遇到“回字形”迷宫,出口和入口并不连通,则会出现绕了一圈返回原地的情况。

Read the rest of this entry »

彩虹为什么是弯的?

作者:D-Horse

想必很多人都见过彩虹(至少彩虹的照片你见过吧)。一说到它,你脑海里总能浮现出一道七色圆弧。但你知道彩虹为什么是弯的吗?彩虹真的是恰好七种颜色吗?彩虹的秘密,死理性派告诉你。

古代人对彩虹的观察和研究

对彩虹的研究最早可以追溯至公元前 4 世纪。亚里士多德是第一个认真研究彩虹的人,他曾指出彩虹最为重 要的几个特征,比如:

  • 如果太阳在地平线上升起得不太高,彩虹就会出现。彩虹不会出现在夏日的中午
  • 我们可以同时看到两条形状相同但颜色顺序排列相反的彩虹,其中外侧那条显得略为松散
  • 彩虹主要由三种(或四种)颜色组成(现代的RGB三原色理论亦基于此)

但是有一个很重要的现象亚里士多德并没有注意到,那就是两条虹中间的区域亮度较暗,直到公元约 200 年雅典哲学家亚历山大(Alexander of Aphrodisia)才观察到这个现象,所以后人就将这条暗带命名为“亚历山大暗带”(dark band of Alexander)。另外,亚里士多德对彩虹的解释并不正确,他认为只有大的镜子可以反射出物体的全部外形,他把天空中的水滴比做小镜子,认为这个镜子太小了,不可能反射出整个太阳,但是又必须得有什么东西反射出来,所以会有颜色呈现出来。而且,亚里士多德也没有注意到光的折射作用。

在此之后,古罗马哲学家 塞内卡 、波斯物理学家 海什木 等人也都曾发表过自己的看法。中国北宋时期一位叫 孙思恭 的精通天文历算的进士也曾说过“虹乃雨中日影也,日照雨则有之”(沈括《梦溪笔谈》),这些均只停留在对现象的思考上,没有更多深入和本质性的研究。

彩虹是怎么形成的

我们现在知道,彩虹的形成和光的折射有关。所以直到人们发现折射定律,彩虹问题才有条件被解决。光入射到不同介质的界面上会发生反射和折射,入射光和折射光位于同一个平面上,且与法线的夹角满足如下关系:

其中, n 1 和 n 2 分别是两个介质的折射率, θ 1 和 θ 2 分别是入射光(或折射光)与法线的夹角,叫做入射角和折射角。这个定律最早在公元 984 年被波斯科学家 IbnSahl 精确描述。随后又被英国科学家 托马斯·哈利奥特 ( 1602 年)、荷兰物理学家 威理博•斯涅尔 ( 1621 年)、法国数学家笛卡尔( 1637 年)等人先后独立发现这个定律。

其中,笛卡尔利用折射定律,成功解释了彩虹是如何形成的。笛卡尔假想在一个 AFZ 平面内,光线从 AF 处射出,人眼位于 E 处。如果这时把一个代表水滴的圆球放在 BCD 处,那么 D 部分将呈现全红色且比其它部分都更明亮。而无论是把球向前向后还是向左向右移动,这个现象均不会改变。笛卡尔测出此时的 ∠DEM 约为 42° ( M 为彩虹的圆心)。之后他将 ∠DEM 调得稍大一些,观察到红光立刻就消失了,稍小一些,则能看到黄色、蓝色等其它颜色。在仔细检查 BCD 处的球后,笛卡尔得出结论:光线 AB 在 B 点处射入球体发生折射打到 C 点,随后在 C 点处发生反射传递到 D 点,并在 D 点再次发生折射而出。

【笛卡尔描绘彩虹是如何形成的。图片来源:wikipedia.com】

Read the rest of this entry »

你的密码安全吗?小心那些隐藏的陷阱

作者:D-Horse

美国国家安全局(NSA)为了破译恐怖组织的密码以挫败其阴谋,斥巨资建造了一台可以破解一切密码的机器:万能解密机。这是美国作家丹•布朗在其小说《数字城堡》中虚构的情节。以人类今日之科技实力,打造这样一台无坚不摧的“神器”还只是个遥远的梦想,但如何在网络社会中保护自己的个人隐私一直是个现实的问题。20多年来,现代人已经掌握了“数字城堡”——密码的构造方法,自认为可以高枕无忧,但事实远非如此。

越复杂的密码越安全吗

很不幸,答案是否定的。人们通常认为,把密码设得越复杂,别人就越难猜到,但这样一来无疑增加了记忆的难度。而对于那些企图窥探你秘密的人来说,他们也只是想不到,而非“猜不到”。现如今,还有几个人破译密码是靠大脑“猜”的呢?

这就正如 XKCD 所说的那样:经过二十年的努力,我们成功地陷入一个误区,那就是把密码设的越来越难以记忆,然而却被计算机很轻松地就破解出来了。

保证密码强度的关键是什么

那保证密码强度的关键到底是什么呢?其实,上面的漫画已经给出了答案:密码长度。

这里引入信息学中的信息熵(我们常听人说这个信息多、那个信息少,对信息“多少”的量化就是信息熵),用它来作为密码强度的评估标准。信息熵计算公式为 H = L * log 2 N,其中,L表示密码的长度,N的取值见下表:

Read the rest of this entry »

70亿世界人口是怎么来的

作者:D-Horse

1999 年 10 月 12 日凌晨 0 时 2 分,波黑首都萨拉热窝一名男婴的诞生标志着 世界人口达到了 60 亿。时光流转,仅仅 12 年之后,2011 年 10 月 31 日,菲律宾婴儿, 丹妮卡·卡马乔 的诞生象征着世界人口突破 70 亿。也许很多人会感到诧异,这个“ 70 亿”到底是怎么算出来的。别急,让我们从头说起……

人口是如何增长起来的

早期人类以狩猎和觅食为生,世界范围内数量约为 100 万,到农业得到发展之前,其数量也未超过 1500 万。而公元 4 世纪时,东、西罗马帝国人数总和已超过 5600 万。但随之而来的 查士丁尼大瘟疫 几乎给欧洲文明以毁灭性打击,其人口数量从公元 541 年到公元 8 世纪间锐减 50% 。随后欧洲文明渐渐复苏,人数从公元 1000 年的 3850 万上升至 1340 年的 7350 万。好景不长, 1347 年 黑死病 席卷而来, 3 年时间世界范围内死亡 7500 万人,整个 14 世纪约死亡 2 亿人。又过了 150 年,欧洲人口数量才得以恢复。中世纪前后,疾病、战争是阻碍世界人口发展的主要原因。但鼠疫并未彻底根除,反复爆发几次后才于 19 世纪彻底结束。

世界人口变化图 (图像来源:维基百科)

直到近代 农业革命 和 工业革命 的兴起,医疗卫生条件得到改善,婴幼儿死亡率降低,人类预期寿命上升,世界人口才呈现陡然上升的趋势。

Read the rest of this entry »

细菌掷骰子吗?

作者:D-Horse

传说骰子的发明人是三国时期的文学家曹植,是为了占卜之用。时至今日,它已演化为人类广泛用于赌博和休闲娱乐的工具,深入千家万户。除老百姓外,科学家们对骰子也可谓情有独钟,甚至在上个世纪还爆发了关于“上帝掷骰子吗”的大讨论。当然,我今天并不想讨论这么大的一个话题,但依然不妨碍我把掷骰子试验背后隐藏的二项分布和大数定理引入自然界,用它对一些生物学现象进行探讨和分析。比如下面我们可以来研究下“细菌掷筛子吗”这个问题。

从投针到掷骰子

1777年法国数学家布丰[1] 别出心裁地想到一种计算圆周率π的方法:随机投针法。他对此方法的描述是:在平面上画有一组间距为D的平行线,将一根长度为L(L<D)的针任意掷在这个平面上,则此针与平行线中任一条相交的概率是p=2L/(πD),π即为圆周率。1901年意大利数学家马里奥•拉扎里尼(Mario Lazzarini)重复了这个试验。他总共投掷了3408次针,得到π的值为355/113,已经精确到了小数点的第6位。关于它的解法可以参看wikipedia页面布丰投针问题。有同学想验证这个试验但又没有针和时间怎么办呢?那就来尝试运行一下这个计算机模拟程序吧。

Read the rest of this entry »