Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2545111
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-10-03 01:34:41

    甲、乙、丙、丁四个同学中,有一个同学在数学竞赛中获奖。老师问他们谁是获奖者时,他们做了如下回答:
    甲说:“不是我。”
    乙说:“是丁。”
    丙说:“是乙。”
    丁说:“不是我。”
    他们当中只有一个说真话。到底谁是获奖者?
 
    从题目中我们可以看出,只要我们枚举出现的可能性,然后用排除法,即可获得最后的答案。我们的做这道题目的思想是,假设一个人说真话,其余说假话,如果在假设中出现逻辑推理矛盾,或者出现两个或者两个以上说真话,则此假设错误,(因为题目要求是只有一个人说真话)然后进行下一个推理的判断。
    1:甲说真话,乙、丙,丁说假话我们可以进行如下的逻辑推理:
    因为甲说的是真话(“甲说:不是我”),因此我们可以推断出获奖者可能是:乙、丙,丁。因此在甲说真话的情况下,我们需要要找出乙、丙,丁到底哪个是获奖者。
    a.乙是获奖者。乙说:“是丁”说了假话;丙说:“是乙”说了真话;丁说:“不是我”,意思就是说可能是“甲,乙,丙”也说了真话,因此我们可以判断在甲说真话,假设获奖者是乙,则同时出现了:丙,丁都说了真话。所以此种假设不成立,这种情况排除掉。
    b.丙是获奖者。乙说:“是丁”说了假话;并说:“是乙”说了假话;丁说:“不是我”,意思说说可能是“甲,乙,丙”说了真话。因此我们判断在甲说真话,假设获奖者是丙的情况下,出现了丁也说了真话。因此在这种假设中出现了两个说真话的。则此种假设不成立,这种情况排除。
    c.丁是获奖者。乙说:“是丁”,说了真话;丙说“是乙”,说了假话;丁说:“不是我”,说了假话。因此我们判断在甲说真话,假设获奖者是丁的情况下,出现了乙也说真话的情况。因此在这种假设中出现了两个说真话的,所以此种假设不成立,这种情况排除。
    因此在假设甲说真话的情况下,逻辑推理都不对。所以排除甲说真话的可能性。
 
    2.乙说真话,甲,丙,丁说假话的情况进行如下的逻辑推理:
    假设乙说了真话:“是丁”。我们假设获奖者是“丁”,甲说:“不是我”,意思就是说可能是“乙、丙,丁”因此甲说了真话;丙说“是乙”,说了假话,丁说“不是我”,意思就是说,可能是“甲,乙,丙”,因此也说了假话。在这种假设中出现了甲说真话情况,因此乙说真话的假设不成立,这种情况排除。
 
    3.丙说真话,甲,乙,丁说了假话的进行如下的逻辑推理:
    假设丙说了真话:“是乙”。我们假设获奖者是“乙”,甲说:“不是我”,意思就是说可能是“乙、丙,丁”因此甲说了真话;乙说“是丁”,因此乙说了假话;丁说“不是我”,意思就是说,可能是“甲、乙,丙”,丁说了真话。在这种假设中出现了,甲,丁说真话的情况,所以这种假设不成立,这种情况排除。
 
    4.丁说了真话,甲、乙,丙说了假话的进行如下的逻辑推理:
    假设丁说了真话:“不是我”,因此获奖的人可能是,甲、乙,丙。我们对这三种情况分别进行逻辑推理验证:
    a.甲是获奖者。甲说“不是我”,甲说了假话;乙说:“是丁”,说了假话;丙说:“是乙”,说了假话;因此这种假设成立。
    b.乙是获奖者。甲说“不是我”,甲说了真话;乙说:“是丁”,说了假话;丙说:“是乙”,说了真话;在这种假设中出现了,甲,丙说真话的情况,所以这种假设不成立,这种情况排除。
    c.丙是获奖者。甲说:“不是我”,甲说了真话;乙说“是丁”,说了假话;丙说:“是乙”,说了假话;在这种假设中出现了,甲也说真话的可能性,因此这种假设不成立,这种情况排除。
 
    因此根据上面的逻辑推出判断,我们最后得出:丁说了真话,甲是获奖者。
  
    经过思考,我发现还有另外一种解题的方法,也就是倒推法。
    我们知道获奖的可能性是甲,乙,丙,丁其中的一人,因此我们分别假设甲,乙,丙,丁中的一个人获奖,看那种情况是一个人说真话,三个人说假话。
    1.甲是获奖者。甲说“不是我”,甲说了假话;乙说“是丁”,说了假话;丙说“是乙”,说了假话;丁说“不是我”,说了真话,因此此种假设成立。
    2.乙是获奖者。甲说“不是我”,甲说了真话;乙说“是丁”,说了假话;丙说“是乙”,说了真话;丁说“不是我”,说了真话。在这种情况下,出现了甲,丙,丁说真话的情况。因此这种假设不成立。
    3.丙是获奖者。甲说“不是我”,甲说了真话;乙说“是丁”,说了假话;丙说“是乙”,说了假话;丁说“不是我”,说了真话。在这种情况下,出现了甲,丁说真话的情况,因此这种假设不成立。
    4.丁是获奖者。甲说“不是我”,说了真话;乙说“是丁”说了真话;丙说“是乙”,说了假话;丁说“不是我”,说了假话。在这种情况下,出现了甲,乙说真话的情况,因此这种假设不成立。
 
    因此,通过倒推法,我们一样可能得到:丁说了真话,甲是获奖者。
阅读(4515) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~