初级逻辑课(九)
一
甲说:丙是主犯,每次都是他负责的。 乙说:我不是主犯。 丙说:我也不是主犯。 丁说:甲说得对。 警方通过调查,终于查出了谁是主犯,而且他们之中只有一个人说了真话,其余三个人都说了假话。 请问:谁才是主犯呢?
经过前面的练习,这里应该很容易想到了。我们就先找“矛盾”的两句话。
甲说,“丙是主犯”。丙说,“我不是主犯”。则必然有一句是真。
由于只有一个人说真话,那么另外两个人说的都是假话。
乙说,“我不是主犯”。但是,他说的是假话,所以“乙是主犯”。
我们也可以用另一个方法。既然有三个人说假话,那么如果有两句话相同,这两句话必然都是假话。
丁说,“甲说得对”。此时两人说法相同,所以都是假话。于是丙是真话,乙还是假话。“乙是主犯”。
二
交流一共用到了汉语、英语、法语、日语四种不同的语言。 现在已经知道的是: (1)甲、乙、丙各会两种语言; (2)丁只会一种语言; (3)有一种语言四人中有三人都会;(4)甲会日语; (5)丁不会日语; (6)乙不会英语; (7)甲与丙不能直接交谈; (8)丙与丁不能直接交谈; (9)乙与丙可以直接交谈;(10)没有人既会日语,又会法语。 请问:甲、乙、丙、丁各会什么语言?
我们需要学习的是“方法”。在遇到这样一个问题的时候,怎么做才是最正确并且最简单呢?
解决这个问题时,需要根据给出的内容,排除或者确定一个“必然成立”的条件。
像这样,给出的内容很多时,我们面临的第一个难题是“如何入手”,应该先从哪一条做起呢?
此时,最简单的方法,是先将每一条的内容中所包含和隐藏的条件都列出来。然后再看,哪些可以确定,哪些可以排除。
1,“甲,乙,丙各会两种”,隐藏条件“甲,乙,丙各有两种不会”。整体是“四种语言”,那么除了“会”的部分之外,当然剩下的就是“不会”的。这就是“隐藏条件”。
2,“丁只会一种”,隐藏条件“丁有三种不会”。
3,“三人会同一种”,隐藏条件“有一种语言,只有一个人不会”。
4,“甲会日语”,由1可知,甲在剩下的三种语言,汉,英,法,只会一种。
5,“丁不会日语”,结合2,隐藏条件“丁在其他三种语言中,只会一种。”
6,“乙不会英语”,结合1,隐藏条件“乙在其他三种语言中,有两种会,有一种不会”。
7,“甲与丙不能交谈”,隐藏条件“甲会的语言,正好是丙不会的”。由1可知,甲与丙各会两种,所以甲与丙合在一起,正好包括了所有四种语言。此外,由4可知,甲会日语,则丙必然不会日语。
8,“丙与丁不能交谈”,隐藏条件“丙会的语言,丁不会”。结合7可知,丁会的语言,甲必然也会。
9,“乙与丙可以交谈”,隐藏条件“乙与甲之间,至少有一种语言不同”。
10,“没有人既会日语,又会法语”。结合4,甲会日语,可知甲不会法语。结合7,可知“丙会法语”。
将上述条件归总。
甲,会两种语言,会日语,不会法语。另一种会的语言,必然是汉语和英语中的一种。还有一个隐藏条件,甲会的语言,丙必然不会。
乙,会两种语言,不会英语。所以乙会的语言是汉,日,法中的其中两种。但是,由10可知,日语和法语不能共存,所以乙只能会其中的一种。由此得到,乙必然会汉语,另一种会的语言是日语和法语中的一种。
丙,会两种语言,不会日语。所以丙会的语言是汉,英,法中的两种。因为甲与丙会的语言不同,并且甲会的语言必然是汉语和英语中的一种,所以能够得出,丙必然会法语。又可以得到,丙如果会汉语,甲必然会英语。反之,丙会英语,甲必然会汉语。
丁,只会一种语言,不会日语。不能与丙交谈,说明丁也不会法语。所以丁会的语言,必然是汉语和英语中的一种。
再总结一次得到,
甲会日语,可能会汉语或英语。
乙会汉语,可能会日语或法语。
丙会法语,可能会汉语或英语。
丁可能会汉语或英语。
因为甲和丙不能同时会英语,所以只有汉语是三个人都会的。由此得到,“丁会汉语”。
丁不能与丙交谈,所以丙不会汉语,由此得到,“丙会法语和英语”。
丙不能与甲交谈,由此得到,“甲会日语和汉语”。
乙能够与丙交谈,并且乙不会英语,由此得到,“乙会汉语和法语”。
虽然这个过程看着很长,但它却是最全面的,从而省去了“出错”时耽误的时间。因此,这样做,反而是最简单最正确的方法。
三
一名医生在家里被人杀害,抓到了四名嫌疑犯。警方根据目击者的证词得知,在医生死亡那天,只有这四个病人单独去过一次医生的家。 在传讯前,出于各种不同的原因,这四个病人商定,每人向警方做的供词都是谎言。 下面是每个病人所做的两条供词。 A病人: (1)我们四个人谁也没有杀害医生。 (2)我离开医生家的时候,他还活着。B病人: (3)我是第二个去医生家的。 (4)我到达他家的时候,他已经死了。 C病人: (5)我是第三个去医生家的。 (6)我离开他家的时候,他还活着。D病人: (7)医生不是在我去他家之后死的。 (8)我到达医生家的时候,他已经死了。 这四个病人中谁杀害了医生?
已经知道,所有的话都是假的,所以可以先转换出“对应”的话。
A (真话)1,四个人中,有人杀害了医生。2,我离开医生家时,他已经死了。
B(真话)3,我不是第二个去医生家的。4,我到医生家时,他还活着。
C(真话)5,我不是第三个去医生家的。6,我离开医生家时,他已经死了。
D(真话)7,医生是在我去他家后死的。8,我到达医生家时,他还活着。
这里就出现了“漏洞”。由于D的话中,医生在D去之前活着,却在D离开后死了,必然得出,D是凶手。所以前面的设置条件都无用了。
四
某人有8升酒,想把一半赠给别人,但没有4升的容器,只有一个3升和一个5升的容器。利用这两个容器,怎样才能用最少的次数把这8升酒分成相等的两份?
8升分为相等的两份,每份就是4升。3升的容器当然是不可能装下的。这表明,只能装在5升和8升容器中。
如果8升容器倒出4升,当然就剩4升了。可是,如果我们可以从8升容器倒出4升,那么只要倒一次就够了。显然这是无法完成的。所以这道题的实质,是怎么在5升容器中装4升。
一个办法,从满的5升容器中倒出1升,当然就剩4升。
另一个办法,让5升容器中只剩1升,再用3升容器倒入3升,一共4升。
先看第一个方法,从满的5升容器中倒出1升。
第一步,当然是先从8升容器中倒出,装满5升容器。
第二步,从满的5升容器中,倒出3升装满3升容器。此时5升容器中还剩2升。
第三步,将3升容器中的3升,全部倒入8升容器。此时3升容器就是空的。
第四步,将此时5升容器中的2升倒入3升容器。此时,5升容器空了,3升容器中有2升。
第五步,从8升容器中倒入5升容器,装满。此时5升容器中有5升,8升容器中有1升。
第六步,从满的5升容器中倒入3升容器。由于3升容器已经装了2升,所以只能倒入1升就满了。此时,3升容器中有3升,5升容器中有4升。
第七步,将3升容器中的全部倒入8升容器。此时,8升容器有4升,5升容器中也有4升。完成。
五
有两根粗细不均匀的绳子,烧完的时间都正好是1个小时,你能用什么方法来确定15分钟的时间?
这一题巧妙地隐藏了一个条件。我当时并没有想到,看了答案。看完答案,我觉得这个条件符合“逻辑”判断,也就是它确实是可以想得到的。但是,又有一点偏离,这个方向不是很明确。所以,这里不提供答案,请你自己试着想一想吧。