我看到这个问题的时候首先想到的是这是一个自动控制原理里的反馈问题,两位先知就是两个系统,系统的输出是所出的手势,系统的输入是对方即将出的手势。
这里有一点非常违反直觉,就是两个人互相作为输入和输出,不断地影响对方,最终陷入了死循环,成了一个悖论。曾经我也是这么认为的,直到我学了自动控制原理,才发现这一个悖论是可以解决的。
要解决这个问题,首先得提到自动控制原理里同样违反直觉的一个概念——反馈环节。(友情提示,这里要扯一大堆控制原理的东西了,如果你有所了解,就跳过我这班门弄斧的一段,看分割线以下内容)
如上图,反馈环节中的输出又会作为输入信号再一次经过处理环节,得到一个新的输出,然后输出变成输入……以此往复,子子孙孙无穷尽,我们永远也得不到一个确定的输出结果?很违反直觉,对吧。但是反馈环节可以说是所有控制系统中最常见且基本的部分,如果连它都无法得出确定的结果,我们的世界应该已经崩溃了。
既然如此,又需要提到另一个概念了——系统的稳定性。这是一个很有趣的东西,直接决定了“两个能预知未来的人,剪刀石头布”能不能有一个结果。So,什么是系统的稳定性呢?本来要回答这个问题,我们需要用到傅里叶变换、拉普拉斯变换、微分方程、传递函数……但是因为我懒的输入公式,知道你们也懒得看,这里就不放各种公式、定义了。直接举两个例子来说明。
首先是稳定的系统,以空调为例。假设现在室内温度为30度,你设定的温度为20度。以当前的室内温度为输入信号,空调发现输入的30度比设定的温度20度高,因此会降低温度。单位时间过后,测定当前温度,发现仍然比20度高,于是继续降温。一段时间过后,可能温度低于20度了,空调会升高温度,这样经过几个循环后,温度会维持在20度,可能略有波动,但在可接受的范围内。这样空调以及所在的房间就够成了一个稳定的系统,将室内温度维持在了你所设定的20度上。
那什么是不稳定的系统?依旧以空调为例。这回你家的空调是用外星科技制造的,温度调节能力很强悍,但是外星人的思维异于常人。依旧假设现在室内温度为30度,你设定的温度为20度。外星空调发现当前温度30度高于设定的20度了,立即决定降温,直接将温度降至-273.15度。单位时间后,发现现在温度有点低了,于是决定升温,于是温度达到了1024度。外星空调又发现温度高了,降温,-273.15度。温度低了,升温,2048度……然后你家的温度就在绝度零度和正无穷之间不停变化,就是不能稳定在你设定的温度上。这样,你家的外星空调以及那个饱受摧残的房间就成为了一个不稳定的系统。
------------------------------------------------------------------------------------------------------------------------
回到石头剪子布的问题上来,问题的关键就在于两个能预见未来的人构成的系统到底是稳定的还是不稳定的。我们需要具体问题具体分析。
1 . 先知完全按照所预见的未来决定自己的行为。
两个先知中都决定不改变预见的未来,如果这样的话这个问题就没有意思了。大家已经知道了结果,就按照预见的结果比完赛,各回各家,各找各妈了。
2 . 先知都想赢得比赛,为此不惜改变未来。
在这个条件下,这个问题就变得非常有意思了。可以打个比方,令狐冲的独孤九剑可破天下剑法,其关键在于天下招式皆有破绽,但风清扬也会独孤九剑,令狐冲的破剑式能不能击败风清扬的独孤九剑?如果二人非要比个高下,结果又是如何。这两个问题可以说是有异曲同工之妙,只要不出手,就不会有胜败,但只要一出手,自己就会被对方克制。
先在Simulink里建立出石头剪子布这个问题的模型。
图中Prophet A、B为两位先知,在预知了对方的行动之后,双方都做出了自己的决定,到达Compare函数这个环节时,手势已出,胜负已分。我们需要知道的就是图中Out里的结果了。
但是很遗憾,这个模型是无法运行的。点击运行后,会提示包含代数环,无法运行。也就是二者互为输入输出,形成了一个逻辑上的错误。继续上面的那个例子,想用独孤九剑决斗的令狐冲和风清扬,都在等着对方出招,这样才能找到对方招式的破绽,从而一击取胜。但是双方都不出招,也就没有破绽,双方的独孤九剑都无用武之地。
为了解决这个问题,需要对上面的模型稍加修改。
图中的黄色模块就是修改的部分,一个Memory模块,通过赋初值的方法,让模型运行。实际意义为,两个先知经过长时间的僵持,谁都没有先做出决定,然后先知B忍不住了,决定要出手了,下一个瞬间先知A预言到了B的决定,在A做出决定的一刻,未来就改变了。于是B也同样根据改变了的未来改变了自己的决定。以此循环。但是由于两人决定出手到确定结果的这一段时间是有限的,因此循环不可能无限次的进行。
这里放出Simulink模拟的结果,输出结果中横坐标为时间,纵坐标“1”代表先知A获胜,“2”代表先知B获胜。
可以看出比赛的结果是在不断变化的,也就说明在两位先知的实力相当时,我们的系统是不稳定的,没有谁有必胜的把握。但是在某个确定的时间点,结果是一定的。
至于在这个时间点,究竟是谁获胜,恐怕还要考虑很多因素,比如从决定出手到实际出手的时间间隔,双方预见未来所需要的时间,双方思考所需要的时间,做出手势的快慢等等。
再看令狐冲和风清扬的比武,虽然两人独孤九剑都能克制对方,但最终谁能取胜,还是看临场的发挥,“无招胜有招,一切顺其自然”。
2014-02-23------------------------------------------------
2014.3.14更新
上个月写的答案,没想到突然多了这么多赞同。本来只是看到这个问题,觉得如果用大学里学的自控原理来分析一定很有意思,但是发现以前在学校里的时候没好好学习,现在只能分析到这个程度了。书到用时方恨少啊!
关于上面的结果中为什么“B”获胜的情况多一些,可以看一下评论区里的解释(其实真正的大神总是出现在评论区里的)。
(PS:实际情况是我也不知道为什么出来这个结果,但是它就是这样出来了=_=。
如果你真的想知道为什么,我只能说暂时不要在意这些细节。我自己得先去想明白。)
(PPS:多说一句,各位还在学校的同志们一定要好好学习,谁知道学的东西什么时候用上了。)