发信站: 饮水思源 (2004年05月25日19:32:28 星期二)

一道智力题的逻辑解法和讨论
一.    问题
喜欢做IQ题的人肯定做过一道关于魔鬼和天使的题目,题目大概是这样的:
有一个岔道口,岔道口两边有两扇门,一扇通往天堂,一道通往地狱,门口都站着一个卫
兵,一个是天使,一个是魔鬼,天使永远只说真话,魔鬼永远只说假话,但是天使不一定
就是站在天堂门口的,魔鬼也不一定站在地狱门口,这时候有个人想去天堂,但是他只能
问其中一个卫兵一个问题,而且回答的人只能用是与不是回答,问他应该问怎样一个问题
,才能正确的到达天堂?
二.    解答
这道题是里面的卫兵只能用是与不是回答问题,很明显是一道数理逻辑的问题,如果我们
将这道题用数学公式描述一下,会发现这道题其实很简单的。
这道题一个只有四种情形:
1. 天使站在天堂门口,人站在天堂门口;
2. 天使站在天堂门口,人站在地狱门口;
3. 天使站在地狱门口,人站在天堂门口;
4. 天使站在地狱门口,人站在地狱门口。
人只能问一个问题,那么答案只能作出一个判断,一个判断只能分析出一种情形,人需要
的是他是否站在天堂还是地狱门口,那么显然天使站在那个门口这个情形将要在提出的问
题中条件归并掉,那么意味着这个人要提出的问题,不管卫兵是天使还是魔鬼,只要它回
答“是”,就意味着他后面是天堂,回答“不是”就意味着后面是地狱,这样这个人才能
找到正确的通往天堂之门。(当然,我们也可以提出这种问题,不管卫兵是天使还是魔鬼
,只要它回答“不是”,就意味着他后面是天堂,回答“是”就意味着后面是地狱,我们
先作前面那种假设,这种情况在后面的“花色”中我们将会讨论)
我们假设两个逻辑变量:
1.  变量x,当x=1时表示天使站在天堂门口(魔鬼站在地狱门口),当x=0时表示天使站在
地狱门口(魔鬼站在天堂门口)。
2.  变量y,当y=1时表示人站在天堂门口,y=0时表示人站在地狱门口。
这个人要提出的问题,不管卫兵是天使还是魔鬼,只要它回答“是”,就意味着他后面是
天堂,回答“不是”就意味着后面是地狱,这个问题就是一个关于x,y的数理函数,我们假
设为P(x,y),P(x,y)=0表示对于这个问题的正确判断应该是“不是”,而P(x,y)=1表示对
这个问题的回答应该是“不是”,但是由于魔鬼会撒谎,因此当P(x,y)=0时魔鬼会回答“
是”,而P(x,y)=1时魔鬼会回答“不是”,我们可以得出这个函数为:
P(0,0)=0;
P(0,1)=0(魔鬼会撒谎);
P(1,0)=1(魔鬼会撒谎);
P(1,1)=1;
画P的卡诺图:
Y   X   0   1
0   0   1
1   0   1
图一
合并单元格得:
P(x,y)=x
翻译成自然语言就是就是这个人只要问“天使站在天堂门口吗?”,只要卫兵回答“是”
,那么表示后面就是天堂,如果回答“不是”,后面就是地狱了。
三.    探讨:
那么,我们只有一个答案么?显然不止,我们还可以从多个方面来获得多个答案:
1.变换数理公式:
我们知道,数理攻势可以变化的,比如上题:
P(x,y)=x=x(y+^y)=xy+x^y
不过是同一个数理公式经变换后的两种自然语言描述而已。
之所以加入这个讨论,是因为往往很多自然语言描述简单的攻势用数理语言描述并不简单
,而用数理语言描述简单的公式用自然语言描述并不简单
2.花色
1)花色定义
(花色是我自己提出的一个名字,不知道在数理逻辑中是否有类似的研究,如果有的话我
也献丑了)
开始我们提到了,我们也可以提出这种问题,不管卫兵是天使还是魔鬼,只要它回答“不
是”,就意味着他后面是天堂,回答“是”就意味着后面是地狱。按照这样的提问我们可
以按照解答的方法得出卡诺图:
    XY  0   1
         0  1   0
         1  1   0
图二
那么答案就是
P(x,y)=^x
那么自然语言就是:天使后面是地狱。同样只要卫兵回答“不是”,那么表示后面就是天
堂,如果回答“是”,后面就是地狱了,同样也能找出正确的答案。
可以看出,卡诺图一和图二除了0,1相反,位置都是一样的,那么我们可以定义这种卡诺
图为“花色相似”。
按照花色相似,我们可以画出这道题中所有的花色:
XY  0   1
0   1   0
1   1   0
图三
XY  0   1
0   0   0
1   1   1
图四
XYX 0   1
0   1   1
1   1   1
图五
XY  0   1
0   1   0
1   0   1
图六
注意:在图三-图六的0,1值并不表示实际的0,1值,而只是表示一种花色。

假如这道智力题的问题不是“人怎样才能正确到达天堂”,而是问“天使是否站在正确的
位置(天使应该站在天堂门口,智力题可以改成上帝来查岗)”,我们解答时应该用卡诺
图四来解答
由图四我们可以得出数理函数:
P(x,y)=y,它用自然语言描述就是人问道“我是站在天堂门口吗?”。不管回答这个问题
的卫兵是天使还是魔鬼,只要回答“是”表示天使就站在天堂门口,回答“不是”就表示
天使站错地方了。

图五是一个恒真式,翻译成自然语言可以是“1+1=2吗?”,它可以解答的智力题应该为
“人面前是天使吗?”,如果是天使那么回答的就是“是”,是魔鬼就是“不是”。

图六是一个更复杂的公式,大家可以想想这个公式的自然语言怎么描述,而且智力题的问
题应该怎么改:)

我们知道,人如果既要知道天堂怎么走,又要知道天使是谁,那么他应该问两个问题,才
能确定他是在前面提到的四种情形种的那一种,综合图三和图四,我们知道这两个问题是
“天使站在天堂门口吗?”和“我是站在天堂门口吗?”。

其实从上面解答和讨论过程可以看出,魔鬼撒谎与否对我们这道题的解决都是没有什么关
系的,如果魔鬼不撒谎,我们要知道天堂在哪同样需要问一个问题,谁是魔鬼,也要再问
一个问题,也就是说从数里逻辑推导来看,题目中魔鬼撒不撒谎都是无所谓的。但是如果
魔鬼撒谎,以人脑来推导显然要比魔鬼不撒谎难得多。那么我们是否可以通过某种变换,
可以将魔鬼撒谎和不撒谎这两种情况相互转换呢?也就是说,可以定义在魔鬼撒谎不撒谎
之间定义某种同构(类似于群),这样的话,我们只要在魔鬼不撒谎的情况下得出答案,
然后转换到魔鬼撒谎的情况下就可以了,对于卡诺图而言,就是图三和图四对图六的花色
变换,研究花色变换将会很有利于我们的工作的。

posted on 2005-01-15 14:31  dayouluo(.Net学生)  阅读(1056)  评论(0编辑  收藏  举报