✔ DONE 把 Emacs 打造为 Python IDE thinking@思维

集成开发环境(IDE)是一种帮助程序员高效开发软件代码的软件应用程序。它通过将软件编辑、构建、测试和打包等功能结合到一个易于使用的应用程序中,提高了开发人员的工作效率。就像作家使用文本编辑器,会计师使用电子表格一样,软件开发人员使用 IDE 让他们的工作变得更轻松。当前比较流行的 Python IDEPyCharm, IDEA, VS CODE 等。 Emacs 作为一个可扩展的文本编辑器,处理各种文本数据是非常方便的。我们在 Emacs 里增加 elisp 扩展,就可以模拟各种 IDE 的环境,还能更好。

IDE 的功能

需要模拟的 IDE 基本功能应该包含:

  • 代码编辑
  • 语法高亮
  • 文档查找
  • 代码跳转
  • 语法解析
  • 代码规范
  • 代码检查
  • 代码调试

基本功能设置

基本的功能应该有:代码编辑和语法高亮

✔ DONE 一个概率事件的启发 thinking@思维

我们从中学开始,就学了概率和统计,但是大多数人都被那些绕来绕去的数学题搞得头昏脑胀,完全不知道这些思想在现实中有什么用处。其实,日常生活中,大量的事情都是由概率和统计来支撑的。脑袋里如果没有这个思想,就很容易犯错误,甚至被骗。我用一个例子来说明一下。

事例

如果社会上突然出现一种传染病,很致命,大概被传染变成阳性的概率是千分之一。大家都很担心,也希望早早地发现并预防。于是,科学家研制出了一种检测仪器,运用了最先进的科学技术,检测成功率为 99.9%。只要被感染,就能及时地检测出来。但是,大家都知道,任何仪器都有一定的出错概率,也就是误检率 —— 一个人没有被感染,但是被检测为阳性,俗称“假阳性”。科学家们又想了很多办法,最后也运用了最先进的科学技术,让误检率也变得很低,最后的效果也是 99.9%的可能不会出现“假阳性”。

现在,如果一个人被这台仪器检测为阳性了,请问,他真正被感染的概率是多大?

暂停

请大家暂停往下读,自己猜一下正确答案。


答案

很多人都觉得,这个仪器这么先进,检测成功率为 99.9%,误检率也很低,那一旦被检测出来是阳性,至少也是 80%以上的可能性被感染了吧。于是吓得不行。但真实的答案是:只有 50%的可能性是阳性。

我来解释一下,由于这个病的发病率是千分之一,可以假定 1000 个人里,有一个人是真正阳性的。这台仪器的检测正确率是 99.9%,因此这个阳性的人,一定会被检测出来。但是,虽然仪器的误检率也很低,但是也会把正常的人检测出是阳性。这个概率是多少呢?99.9%意味着,1000 个人中也有一个正常人会被检测为“假阳性”。于是,在这 1000 个人中,就有两个人会被仪器检测为阳性,但只有一个人是真被感染者。

所以,如果仪器说一个人是阳性,意味着,他/她只有一半的可能是真正的被感染者。

解释

为什么答案和直觉相差这么大呢?奥秘就在于这个病的真实发病率,只有千分之一。也就是说,这个病的犯病率是小概率事件。我们大家对于小概率没有直观的感受和认识,于是现实生活中,遇到这种情况,就会慌了手脚,觉得这么先进的仪器,都检测出来是阳性了,还能是假的?很多骗子于是就趁虚而入,大发其财了。

所以,卡尔·萨根说过一句名言:Extraordinary claims require extraordinary evidence —— 超凡主张须有超凡证据。一件事,如果发生的概率很小,我们如果要下结论,就必须格外慎重,需要更多的证据来支撑才行。

引申

因此,对于大概率事件和小概率事件,大家一定要有一定的认知。在上面的例子中,如果发病率是万分之一,大家可以算算,即使这么先进的仪器检测出来是阳性,真实的得病概率是多大?

万分之一的发病率,对于真实世界来说,是很常见的。大多数的疑难杂症,都远远低于这个概率。所以,现实生活中,一定不要迷信哪一家机构的诊断结果,不是说他们水平不高,而是数学就证明了,多做几次检测,才是最重要的。

✔ DONE 一个奇妙的数学思维 thinking@思维

数学真是一个奇怪的东西,我们早就知道了各种美妙的数学思想,以及抽象美带来的震撼。前两天,我看到一个关于数学命题证明的小故事,再一次地刷新了我对于数学思想的认识。

我们都知道,数学证明中有一种方法叫反证法,就是通过是否能找出一个反例,来证明一个命题的正确性。但是,这次说的是,我们找不到反例,但依然能够用反证法来证明一个命题。我简单地描述一下这个命题,然后用我自己理解的方式来讲述一下这个证明过程(如果证明错了,责任全在我,原来的数学思想应该是正确的 😉)

命题

请判断并证明:一个无理数的无理数次幂,一定是无理数。

解释

无理数就是无限不循环小数,比如 \(\pi\), \(e\), ……, 等等。由于无理数无法精确得到所有数值,所以一个无理数的无理数次幂,除了少数情况外,是无法准确得到所有数值的。比如,\(\pi^{\pi}\),它的前 30 位数值是:36.4621596072079117709908260227。我们根本无法从中判断,最后的数值是否是一个有理数,还是仍然为无理数。

证明

我们用反证法来证明此命题,即假设原命题是成立的。

首先,我们构造一个无理数的无理数次幂: \(x = \sqrt{2}^{\sqrt{2}}\), 这个数值有两种情况:

  1. \(x\) 为有理数
  2. \(x\) 为无理数

对于结果 1,那命题当然就错了,因为我们找到了一个无理数的无理数次幂为有理数。我们用反证法来判断情况 2,我们继续构造一个新的数: \(y = x^{\sqrt{2}}\), 运算可得:

\(y = \sqrt{2}^{\sqrt{2}^{\sqrt{2}}} = \sqrt{2}^2 = 2 \)

由于 \(x\) 为无理数,根据假设,\(y\) 也应该是无理数,但现在我们得到了一个有理数 \(2\),所以假设不成立,结论应该是,无理数的无理数次幂,不一定是无理数。

说明

这里,最奇妙的就是,我们虽然构造了一个无理数的无理数次幂:\(\sqrt{2}^{\sqrt{2} }\),但是我们并没有实际求出来这个数,也完全没有证明,这个数到底是无理数还是有理数。也就是说,我们用了反证法,但是并没有实际找到一个反例,就证明了原来的命题不成立。

啊,多么奇妙的数学思想啊。

P.S.

大家可能有点好奇,到底 \(\sqrt{2}^{\sqrt{2} }\) 是不是有理数啊。我用心爱的 Wolfram 计算了一下前 1000 位数值,你们猜,它到底是不是有理数?😜

\(\sqrt{2}^{\sqrt{2} } = \)

1.632526919438152844773495381024719602079108857053 11411724778068438303520599861664224785550750662 60414230011620076508762926586855535678286653743 53276990370339509808349458727844365578417316013 87397734571771945017640579176808540612696970706 77170888211473865443716121182725324216022231689 35434603655006804958808606092092531292648747441 39100350665100223159724526414595020972636096696 48057571699115982318026242029527507671359747631 50951814992616526918951905735917879441942227750 48361947119473707135051457034779869040074304850 86049086756447969815057362491879184271662118777 21616761344994650906881387122735130101636571052 64559906025136865172262615799791196913108286037 30870686736120983480646071979524565988415556211 89979103761174458226636201867544028322841005469 75220327810489296271028397543501936633946445408 54828542034506598152799747777276307577783001254 46163190919411727134856477923053227331124570871 94322830350968985979373357020305196153528119081 54595746674092743048895923198652644685232660662 62013475716

✔ DONE 《一个村庄里的中国》——改革,改变了什么 reading@读书

这本书在我的书库里放了很久,都没有翻开来读。一是太厚重,二来也太沉重。但心里一直记挂着它,于是借这次来北京办事,路途和晚上,没有其他什么事,也就排除干扰,认真读完。果然如自己所料,读完之后,沉重的部分更加沉重,而当年迷茫之处,似乎也没有开悟多少。

《一个村庄里的中国》以作者熊培云从小生活的小堡村为例,讲述了一个村庄近百年的变迁,进而引伸出国家的变化。中国几千年来都是一个农业国家,虽然近 30 年,随着世界潮流的进步,也大大加快了现代化的进程。但各种社会现象,以及出现的很多社会问题,本质上都与农村、农业和农民息息相关。我博士毕业的 2001 年前后,曾经社会上很热烈地讨论“三农”问题。当时,一个年轻的乡党委书记—李昌平,给总理写了封信,大声呼吁:农民真苦、农村真穷、农业真危险!引起了社会极大的反响,高层也开始认真对待“三农”。我当时读了很多相关的书籍和文章,和志刚、唐博士都不止一次激烈争辩过类似话题,那就是,农民的问题,到底是个人因素多还是国家因素重?

封建帝王时代,自不必说,农民只是维系社会运转的零件而已。“草民”、“蚁民”、“贱民”等称呼,有自嘲的,有被强加的。但对于统治者来说,大约农民和一棵草、一只蚂蚁,真不会有多大区别。到了民国时代,从上层到社会中坚,很多人开始反思,如果农民不富足不开化,国家怎么称得上发达?国家又如何与列强抗衡?上个世纪二十年代开始的各种改革,有官方的,有自发的,有热血人士主动深入农村试验的……,不一而足。但结果毫无例外,自然都是失败了。

因为土改,吸引了更多农村子弟参与革命。到了胜利,又回到农村。曾经的土地流转,最后又复归原点。底层的人民,似乎什么都没有拥有过,而有些人,却上下其手,城乡通吃,两面的利益都获取了。如今的乡村,青壮年流失严重,老少两极留守,诸多问题,基本是靠个体和家庭来消化。经济高速发展的时候,城市还可以带动农村。等到经济减缓或者停滞时,城市还需要农村来反哺。而克强总理曾经公开的数据 —— 6 亿人口,月收入低于千元 —— 如何平衡呢?

一个村庄的百年变迁,似乎也没有逃过多少轮回的命运。村庄里看出的国家,又有多少人的命运,在时代的潮流中反复轮回?

我虽然是油田出生的孩子,但从小钻井公司的大院围墙外,都是农村。我也喜欢一个人,经常翻出围墙,到田野里疯跑。经常跑累了,就静静地坐在田间地头,和农民聊天。或者,就抱膝席地而坐,看天上的白云散了又聚,聚了又散。父亲也经常给我讲小时候在农村的各种苦日子,家族曾经发达过,但在爷爷小时候,他的父亲早逝,于是家道中落,孤儿寡母,和大多人农人一样,苦苦维持着生计。父亲兄弟姊妹六人,也只有他读书考学离开了农村。于是,《一个村庄里的中国》里描述的小堡村,我读起来仿佛就很熟悉,很像父亲从小生活的地方,而里面的人,大约也像我的爷爷们。

还在本科时,我就读过教员写的《湖南农民运动考察报告》、《论十大关系》等文章。当时模模糊糊,并不真切地明白里面的很多含义。如今,自己感受过更多的社会百态,也有了一些感悟。可是,真实世界里的很多朋友,似乎在城里待久了,或者从未感触过农村的具体生活,常常觉得我在夸张。我想,大家如果都来读读《一个村庄里的中国》,感受一下真实的农村,同理心和社会心大概都会好很多。在这个世界里,大家的悲欢,并不相同。倘若能相通一些,也许能少许多争吵。

我总怀疑熊培云和我是一个年代的人,检索之后,果不其然。书斋里象牙塔中的知识分子啊,也要多写一些这样的文章才好,多读一些这样的文章才好。