Berry’s Paradox
这个应该怎么翻译?“贝瑞悖论”不是那么顺口,为了看起来诱人一点就把它称为“莓悖论”好了。
今天又看到有人在讨论这个问题:
定理:所有的数都可以用 20 个以内的汉字表达(比如 25852016738884976640000 可以表达为“二十三的阶乘”, 100000000000000000000000 可以表达为“一后面二十三个零”)
证明:反证,假设存在不能用 20 个以内的汉字表达的数,则必有一个最小的不能用 20 个以内的汉字表达的数,而这个数已经用“最小的不能用 20 个以内的汉字表达的数”表达出来了,矛盾。
当然这里的“数”应当限定为自然数,这个不是本质问题。至于本质问题是什么,我纠结了一下午也没想明白;有人说是罗素悖论的变形,不过我觉得跟罗素悖论还不太一样,因为这里不存在一个自我包含的东西。于是只好求助了伟大的维基百科。
大概研究了一下这个页面和它的一个参考文献,就我的理解,基本上问题是这样的:“表达”这个词的含义是不明确的/自我指涉的。用自然语言表达一件事情,首先需要限定语境,也就是约定俗成的背景知识。例如,“一百四十三”可以认为是一个所有人都认识的表达,而“本站IP的最后一段”就不能取得类似的认同。“π的第10^100至第10^101位数”介于两者之间,因为它表达了一个客观确定的东西,但人们却不知道它是多少。
那么,在自然语言中,“表达”就可以分为不同的层面,我们称之为{表达0, 表达1, 表达2, …}。不能用二十个汉字表达0的数,可能可以用20个汉字表达1。当然,你可以限制定理中所说的“表达”是哪个层面上的。但是我们这样重写一下这个定理及其证明就会发现问题:
定理:所有的数都可以用 20 个以内的汉字表达i(比如 25852016738884976640000 可以表达i为“二十三的阶乘”, 100000000000000000000000 可以表达i为“一后面二十三个零”)
证明:反证,假设存在不能用 20 个以内的汉字表达i的数,则必有一个最小的不能用 20 个以内的汉字表达i的数,而这个数已经用“最小的不能用 20 个以内的汉字表达i的数”表达j出来了,矛盾。
发现问题了么?几乎所有的“表达”都可以换成“表达i”,但唯独最后一个“表达”不能换成“表达i”。为什么呢?因为表达j应用了表达i所生成的知识,它必须处于表达i的外围。如果 i=j, 那么就犯了循环论证错误,和“一个自然数被称为奇数当且仅当它相邻的自然数不是奇数”一样荒谬。而如果 i≠j, 那么这个所谓的“证明”过程是推不出矛盾来的,“定理”也并不成立。
如何在没有卡牌的情况下玩三国杀
考虑这样一个问题:有两个无聊的人想玩三国杀,但是没有卡牌,他们彼此并不信任对方(我说我摸到了连弩 对面非要说他手上已经有两张连弩了..)。有没有可能仅通过面对面说话来实现扑克牌协议,并且保证游戏的公正性呢?
扑克牌的信息隐蔽性带来了很多与密码学协议相关的有趣问题。两个象棋大师可以在洗澡间一边冲澡一边大喊“炮八平五”、“马八进七”,一对围棋情侣可以在床上一边亲热一边呻吟“点三三”、“拆二”。等事情办完了,一盘精彩的棋局或许也就结束了。这些棋类游戏之所以可以“盲下”,就是因为在棋类游戏中,双方的局面信息都是完全公开的。不过,打牌就是另外一码事了。你说你出方片7,我怎么知道你有一个方片7?事先发牌?那谁来负责发牌呢?怎样发牌呢?难道我告诉你“发到你手中的是两张3一张5一张8一张9”?这样一看,两个人“盲打扑克牌”似乎是不可能的了,要么需要借助道具,要么需要第三者的帮助。不过,运用密码学知识,我们可以设计一套扑克牌协议,该协议能够实现随机的、隐蔽的、公平的发牌,并且不需要其它东西的帮助。我们以一手五张牌为例,说明如何实现“两人各摸五张牌”的程序。
我们首先来看这里面的一个趣题:
“A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?
答案:A把药放进箱子,用自己的锁把箱子锁上。B拿到箱子后,再在箱子上加一把自己的锁。箱子运回A后,A取下自己的锁。箱子再运到B手中时,B取下自己的锁,获得药物。”
我们的基本思路就是这样。不妨用数字1到54来表示54张牌。发牌前,A在每个数字前附着一个随机字符串前缀,然后给每个字符串都加上一把锁,把54张加密的扑克牌传给B。B收到了扑克牌一看,傻了,这些牌他一张也不认识,每张牌上面都有A的锁。B从里面挑选5张牌出来。他自己不知道这5张牌是什么,但是他也不能让A知道,于是他在这5张牌上再各加一把锁,传给A。A可以解开自己当初上的那把锁,但牌上还有一把锁,A拿它没办法,只能原封不动地传回去。B把剩下的锁解开,得到自己的5张牌。然后呢,B手上不是还剩了49张牌吗?B从中随便挑5张出来给A,由A解开上面的锁,得到A的5张牌。
听起来很完美,但实现起来并不简单。 Read more
零知识证明
战争中你被俘了,敌人拷问你情报。你是这么想的:如果我把情报都告诉他们,他们就会认为我没有价值了,就会杀了我省粮食,但如果我死活不说,他们也会认为我没有价值而杀了我。怎样才能做到既让他们确信我知道情报,但又一丁点情报也不泄露呢?
这的确是一个令人纠结的问题,但阿里巴巴想了一个好办法,当强盗向他拷问打开山洞石门的咒语时,他对强盗说:“你们离我一箭之地,用弓箭指着我,你们举起右手我就念咒语打开石门,举起左手我就念咒语关上石门,如果我做不到或逃跑,你们就用弓箭射死我。”
强盗们当然会同意,因为这个方案不仅对他们没有任何损失,而且还能帮助他们搞清楚阿里巴巴到底是否知道咒语这个问题。阿里巴巴也没损失,因为处于一箭之地的强盗听不到他念的咒语,不必担心泄露了秘密,而且他确信自己的咒语有效,也不会发生被射死的杯具。
强盗举起了右手,只见阿里巴巴的嘴动了几下,石门果真打开了,强盗举起了左手,阿里巴巴的嘴动了几下后石门又关上了。强盗还是有点不信,说不准这是巧合呢,他们不断地换着节奏举右手举左手,石门跟着他们的节奏开开关关,最后强盗们想,如果还认为这只是巧合,自己未免是个傻瓜,那还是相信了阿里巴巴吧。
“零知识证明”说的是示证者向验证者表明他知道某种秘密,不仅能使验证者完全确信他的确知道这个秘密,同时还保证一丁点秘密也不泄露给验证者。阿里巴巴的这个方案,就是认证理论“零知识证明”的一个重要协议。
除了被俘后如何靠情报保命这个问题,零知识证明在社会领域中还有着很多应用场合。例如你证明了一个世界级的数学难题,但在发表出来之前,总是要找个泰斗级的数学家审稿吧,于是你将证明过程发给了他,他看懂后却动了歪心思,他把你的稿子压住,把你的证明用自己的名义发表,他名利双收,你郁闷至死,你去告他也没用,因为学术界更相信的是这位泰斗,而不是你这个无名之辈。
椅子的稳定性问题
4条腿长度相等的椅子放在起伏不平的地面上,问是否一定可以找到一个位置使得四条腿同时着地而放稳?
这个问题我在初中的时候就听赵一夫跟我说起过,当时觉得这问题太诡异了,怎么下手啊。今天再一次见到仍然觉得无从下手,看了答案之后顿觉奇妙。答案是肯定的,一定可以找到一个位置使得椅子放稳!
题目的条件先解释一下,4条腿长度相等实际上告诉了我们这4条腿的顶点是共面的。看了网友的回复,确实题目里有隐含条件需要明确地写出来:(1)椅子是正方形的...(2)四条腿的长度相对于地面的起伏来说足够长...(3)只要四条腿同时着地就称之为放稳(即认为地面的摩擦系数无穷大)...(4)起伏不平的地面我们要把它理解成是一个连续的二元函数。
由哥白尼原理推导人类文明灭亡时间
/*这篇文章的主要内容由热学欧阳颀老师所讲 出自某期New York Times*/
下面要进行的一段推导,将十分诡异,可能有点莫名其妙的感觉,不过还是请完整看下去~
首先说一下什么是哥白尼原理。
Copernican principle:
The best theories are those that do not require the observer to live in a special place in the universe or at a special time in history in order to be true.
也就是说,一个好的理论必须满足,我们既不在宇宙中的一个特殊位置,也不处在一个特殊的时间。这个原理我想大家都可以承认吧。
为了热身,我们先推导一下柏林墙倒塌的时间。
柏林墙于1961年建立,而原文章作者Dr. Gott偶然地于1969年去了一趟柏林墙,此时柏林墙已经存在了8年。
上图中,第一行整体表示柏林墙从建立到最终倒塌的整个生命历程。其中中间50%被染成紫色,这个50%是作者自己设定的,他将给出一个时间区间,而柏林墙倒塌的时间在这个区间里面的概率为50%。
根据哥白尼原理,作者访问柏林墙的这个事件是完全随机的,它落在上图第一条线段上任何一个点的概率是均匀分布的,因此这个点落在紫色区域的概率是50%,也就是说,他去访问柏林墙的时间点处在柏林墙整个生命历程的25%~75%之间的概率是50%。
若他访问的时刻位于第二条直线上的Now位置,也就是说,处于柏林墙生命历程的25%处,那么由此推算,柏林墙的寿命将还有24年(8年占25%,则剩下75%代表24年)。
若他访问的时刻位于第三条直线上的Now位置,也就是说,处于柏林墙生命历程的75%处,那么可以算出,柏林墙的剩余寿命将只有8/3年(8年占了75%,剩下的25%只有8/3年)。
因此,他访问的时刻位于紫色区域时,推算出的柏林墙剩余寿命是在8/3年~24年之间的,因此他声称,柏林墙在未来8/3~24年内倒塌的概率是50%。
当然他也可以把一开始的概率设置成60%或者其他数字,这样将推算出来另一个时间区间,柏林墙生命历程终止于这个新时间区间的概率将为60%。
最终,柏林墙于1989年倒塌。其实,作者写这篇文章的时候已经是90年代了...
下面,他又用同样的方法,给出了人类文明灭亡时间的推算。


