如果我说的是假话,那么我说的是假话

在准备一份数理逻辑的材料时,我创作了下面 10 个逻辑推理问题。在每个问题中,甲、乙、丙三人各说了一句话,你需要判断出每个人说的究竟是真话还是假话。每个问题都有唯一解。注意,与传统的逻辑推理题目不同,没有任何条件告诉你究竟有多少人在说真话,有多少人在说假话。解决问题时尽量避免用枚举法试遍所有 8 种可能,否则这将失去“逻辑推理”的意义。

 
(1) 甲:乙说的是假话
     乙:丙说的是假话
     丙:甲要么说的是真话,要么说的是假话

答案:显然,丙说的是真话。
        因此,乙说的是假话。
        因此,甲说的是真话。


 
(2) 甲:我们三个人当中有人说真话
     乙:我们三个人当中有人说假话
     丙:我们三个人当中没有人说假话

答案:乙和丙说的互相矛盾,他俩的话一真一假。
        这就表明,三个人当中既有人说真话,又有人说假话。
        因此,甲和乙都说的真话,丙说的是假话。

 
 
(3) 甲:我们三个人都说的真话
     乙:我们三个人都说的假话
     丙:我们三个人当中,有些人在说真话,有些人在说假话

答案:这三句话互相矛盾,却又涵盖了所有情况。
        因此,三句话中有且仅有一句话为真。
        因此,甲、乙说的是假话,丙说的是真话。

 
 
(4) 甲:丙说的真话
     乙:丙说的假话
     丙:你们俩一个说的真话,一个说的假话

答案:甲和乙说的互相矛盾,他俩的话一真一假。
        因此,丙说的是真话。
        因此,甲说的是真话,乙说的是假话。

 
 
(5) 甲:乙说的是真话
     乙:甲说的是真话
     丙:我们都说的是假话

答案:显然,丙不可能说的真话。
        因此,丙说的是假话。
        因此,不是所有人说的都是假话。
        因此,甲和乙当中至少有一个人说的是真话。
        不管甲和乙谁说了真话,都可推出甲和乙都在说真话。

 
 
(6) 甲:我们当中有一个人说假话
     乙:我们当中有两个人说假话
     丙:我们当中有三个人说假话

答案:显然,不可能所有人都在说假话,否则丙就说的真话。
        显然,不可能有两个或两个以上的人在说真话,因为这三句话是互相矛盾的。
        因此,恰好有一个人说的是真话。
        因此,恰好有两个人说的是假话。
        因此,乙说的是真话,甲和丙说的是假话。

 
 
(7) 甲:我说的是真话。
     乙:我说的是真话。
     丙:如果我说的是真话,那么甲和乙都说的是真话。

答案:如果丙说的是假话,那么“如果我说的是真话,那么……”永远为真,矛盾。
        因此,丙说的是一定是真话。
        因此,甲和乙说的都是真话。

 
 
(8) 甲:如果乙说的是真话,那么丙说的是真话。
     乙:如果丙说的是真话,那么甲说的是真话。
     丙:我们说的都是假话。

答案:不可能所有人都说的假话,否则甲和乙说的就是真话,矛盾。
        因此,丙说的是假话。
        因此,乙说的是真话。
        因此,甲说的是假话。

 
 
(9) 甲:如果丙说的是假话,那么我说的是假话
     乙:如果丙说的是假话,那么我说的是假话
     丙:如果我说的是假话,那么我说的是假话

答案:如果丙说的是假话,那么“如果我说的是假话,那么我说的是假话”就为真,矛盾。
        因此,丙说的是真话。
        因此,甲和乙说的都是真话。

 
 
(10) 甲:我们三个人要么都说的真话,要么都说的假话
      乙:我们三个人要么都说的真话,要么都说的假话
      丙:我们三个人要么都说的真话,要么都说的假话

答案:显然他们说的都是真话。

 

50 条评论

  • 圆的另一边

    哈哈哈 沙发!!!!!!!

  • Sowe

    文字说明好难理解,配些形式推理好吗?

  • 没人管

    前排~~~

    顶~~~~

  • LK

    看标题还以为是跟说谎者悖论有关的…

  • 纳米

    难度不大..

  • DarkRaven

    第7条的推理似乎有错

  • 卡带

    第七个好象是 如果丙说得是假话, 那么”如果我说的是真话,……”反正都是不会执行的,所以不管后面说什么都是真的。 有点不好理解

  • 以木为记

    第一题,丙说的是。。。废话。。。

  • 武昌鱼

    想问一下做这种题除了枚举法,还有什么方法啊?

  • Netson

    (8) 甲:如果乙说的是真话,那么丙说的是真话。
    乙:如果丙说的是真话,那么甲说的是真话。
    丙:我们说的都是假话。

    答案:不可能所有人都说的假话,否则甲和乙说的就是真话,矛盾。
    因此,丙说的是假话。
    因此,乙说的是真话。
    因此,甲说的是假话。

    这个有问题吧。
    推出丙讲的是假话后,
    甲乙两个的“如果”是假的,假命题可以推导出任何命题。
    所以甲乙两个人说的都是真话。

  • Netson

    厄,搞错了。第8题没有问题- -b

  • 8皮

    第9题有问题哟~如果丙说的是真话,甲和乙都只说如果丙说的是假话,那么他说的是假话,这并不代表如果丙说的是真话,他们说的就不是假话。。

  • papapa

    7、8、9推导出来都是出现”如果”的条件不成立的情况啊,条件不成立没办法推出命题真假啊

  • est

    这个玩意儿用prolog可以方便的解出来吗?

  • biohu

    我晕了。。。。。

  • hplonline

    789比较有意思,涉及到蕴含关系的乍看之下比较囧,细想一下确实是那么回事。

  • Raiel

    第(7)個,丙”如果真,那麽..”,若丙說假話,但是他說”如果真”,那是不存在的事情,無法判斷真僞,所以丙”說假話的假設”就不能確定真假了,有點繞進去了.
    (9)也是,丙說真話假話是不存在的,沒法判斷甲乙的真假,是不確定的事.

  • QQ

    其他还好
    第七题搞不懂,如果丙是假话,为什么推出矛盾?
    明白的解释下

  • Zealot

    (7) 甲:我说的是真话。
    乙:我说的是真话。
    丙:如果我说的是真话,那么甲和乙都说的是真话。

    甲=A 乙=B 丙=C

    x: A => A
    y: B => B
    z: C => (C => A & B)
    =>符号表示推导 例如 A=>B 等价于 !A | B
    (x & y & z) 转化为合取范式 得到(!C) | (A&B)
    所以 这题有5个解, 解为
    (!C) | (A&B)

  • Sowe

    逻辑方程如何解啊?
    1)
    A:= B’
    B:= C’
    c:= A’+A

    2)
    A:= A+B+C
    B:= A’+B’+C’
    C:= B’

    3)
    A:= ABC
    B:= A’B’C’
    C:= (ABC+A’B’C’)’

    4)
    A:= C
    B:= C’
    C:= AB’+A’B

    5)
    A:= B
    B:= A
    C:= A’B’C’

    6)
    A:= ABC’+A’BC+AB’C
    B:= A’BC’+AB’C’+A’B’C
    C:= A’B’C’

    7)
    A:= A
    B:= B
    C:= C->[A,B](这是一个蕴涵关系,不是等价关系。我认为是没法判断蕴涵关系本身的真假性。)

    8)
    A:= B->C
    B:= C->A
    C:= A’B’C’

    9)
    A:= C’->A’
    B:= C’->A’
    C:= C’->C’

    10)
    A:= ABC+A’B’C’
    B:= ABC+A’B’C’
    C:= ABC+A’B’C’

  • DerekHe

    弱弱的问一句: 甲:我说的是真话. 这是什么意思…

  • Sowe

    明白啦!
    将上述问题代入以下公式:
    X:=Y 代换为 X’Y’+XY
    X->Y 代换为 X’+Y

    化简各行,取各行为真的交集!
    例如:
    A:= B’
    B:= C’
    C:= A’+A
    代换后变为:
    AB’+A’B
    BC’+B’C
    C
    另每一行均为真,得唯一解:A=1,B=0,C=1

  • Sowe

    我想问,那么复杂的逻辑关系,是怎样确保有唯一解而设计出来的?

  • Zealot

    刚才那解法有问题 还是23楼的正确
    应该用:= 而不是=>

  • 黑板

    让我想起一道逻辑题。那道题只要我们承认每个人说的话“非真即假”,那就能推出某人为凶手,但转念一想如果现实中真出现这种证言,可凶手却完全可能不是那个人。

  • foreverswz

    orz

  • Mimee

    答案:如果丙说的是假话,那么“如果我说的是真话,那么……”永远为真,矛盾。
            因此,丙说的是一定是真话。
            因此,甲和乙说的都是真话。
    那个"那么"只是单方面的推理吧 不是等价 所以逆命题不一定成立
    为什么丙说的不能缩减成 甲乙皆真呢 每个人说话的前提难道不是自己说的话为真么 那这样的话假若甲乙不皆真 那么丙的论点崩溃 逻辑性必然也无
    假设一个非常罪恶的人 要是说了这样一句话就会被认定说得是真话的话 那他加上任意论点就都成立了么 
     
    (10) 甲:我们三个人要么都说的真话,要么都说的假话
          乙:我们三个人要么都说的真话,要么都说的假话
          丙:我们三个人要么都说的真话,要么都说的假话
    完全可能都说的是假话 因为他们不知道 却装作好像知道别人或者自己知道一样 逻辑问题经不起傻子的参与吧

    看不懂诶 假如都说的真话或者假话似乎没有意义诶 因为他们什么都没说啊
    我要是 说什么都加上一句 我若说谎那么我在说谎 那我说什么都对么?

  • 超子

    再难一点应该……

  • Aule

    诶!楼上正解!

  • tnt

    Sowe总结得挺清晰地

  • wuzhengkai

    @22
    形式逻辑中A->B,若A为假,那么这个式子总为真

  • 加菲猫

    第五题,甲乙可能都说假话,对吗?

  • 百度搜索过来的

    第八题:
    如果丙说真话,则甲乙都说真话,这是可以的。
    如果丙说假话,
    则真实情况应该是:“如果让我说真话:甲乙都说的是假话。”
    所以,丙如果说假话,则甲乙都说假话,也是成立的

  • 百度搜索过来的

    ⊙﹏⊙b汗
    标错题号了,是第七题

  • 百度搜索过来的

    第八题:
    乙说:如果丙说的是真话,则甲说的是真话。
    而丙说的是“我们都在说假话”,所以乙显然在放屁。
    而丙说“我们都在说假话”这也是显然不成立的。
    于是甲说:“如果乙说的是真话,那么丙说的也是真话了。”
    就好像在说:“如果你没有丢B,那母猪都可以上树了。”

    所以,甲说真话,乙和丙说假话

  • 百度搜索过来的

    第九题:
    甲和乙都说:“如果丙说的是假话,那么我说的是假话。”
    这里可以有2个分支,一个是:“如果丙说的是假话,那么我说的是假话。如果丙说的是真话,那么我说的还是假话。”第二个是:“如果丙说的是假话,那么我说的是假话。如果丙说的是真话,那么我说的是真话。”。如果是第一个,如果他们说的是真话,则矛盾。如果他们说假话也矛盾。如果是第二个,如果他们说真话,成立,如果他们说假话,也成立。
    所以就有2*2*1=4种答案了

  • 打酱油的

    9的推理是不是有问题?丙假则甲乙假不能得到丙真甲乙真吧。

  • wawatadi

    对第7题还是异常的困惑。。。。希望有达人站出来详细讲解。。。。

  • wawatadi

    23L正解。。。。安心的睡了

  • darkfox

    第7题倒没什么问题,因为丙说的话必然为真,而他说的话又证明了甲乙为真。
    关键是第9题,被绕了下,
    如果丙假则可以推出甲乙假,这点没什么疑问,那么就由此导致甲乙假为真,证明了他们本身说的是真话。
    所以9题为全真。

  • paramecium

    (7)(8)(9)题应用了数理逻辑里面的一个公设:如果蕴含式的前件(即”如果…”部分)为假,则无论后件真假如何,命题必为真。

    上楼貌似多是在讨论这几题。

  • cervelo

    理解能力很重要,哈哈。。有点晕了。

  • 小可爱

    还不错额额哈

回复给 武昌鱼 取消回复

  ×  4  =  16