自学Python:找出谁在说谎

作者: 小强聊成长 | 来源:发表于2022-01-08 08:07 被阅读0次

现有张三、李四和王五三个人,张三说李四在说谎,李四说王五在说谎,而王五说张三和李四两人都在说谎。

现在问题来了,编程求出这三个人中到底谁说的是真话,谁说的是假话。

张三、李四和王五三个人都可能说真话,也都可能说假话,那么如何来判断他们到底谁在说谎呢?

可以推导出下面三个结论:

01.由于“张三说李四在说谎”,因此,如果张三说的是真话,则李四就在说谎;反之,如果张三在说谎,则李四说的就是真话。

02.由于“李四说王五在说谎”,因此,如果李四说的是真话,则王五就在说谎;反之,如果李四在说谎,则王五说的就是真话。

03.由于“王五说张三和李四两人都在说谎”,因此,如果王五说的是真话,则张三和李四两人就都在说谎;反之,如果王五在说谎,则张三和李四两人至少一人说的是真话。

那用程序穷举,找出符合条件的推理结论就可以了。

下面直接上代码:

########################

if __name__ == "__main__":

    # x、y和z分别表示张三、李四和王五三人说话真假的情况

    # 当x、y或z的值为1时表示该人说的是真话,值为0时表示该人说的是假话

    # 使用三重循环穷举所有情况

    for x in range(2):

        for y in range(2):

            for z in range(2):

                if (x and (not y) or (not x) and y) and (y and (not z) or (not y) and z) \

                    and (z and x ==0 and y==0 or (not z) and x+y != 0):

                    a = '真' if x == 1 else '假'

                    b = '真' if y == 1 else '假'

                    c = '真' if z == 1 else '假'

                    print("张三说的是" + a + "话")

                    print("李四说的是" + b + "话")

                    print("王五说的是" + c + "话")

########################

执行结果如下:

张三说的是假话

李四说的是真话

王五说的是假话

________________END______________

相关文章

  • 自学Python:找出谁在说谎

    现有张三、李四和王五三个人,张三说李四在说谎,李四说王五在说谎,而王五说张三和李四两人都在说谎。 现在问题来了,编...

  • 自学Python:谁在说谎

    诚实族和说谎族是来自两个岛屿的不同民族,已知诚实族的人永远说真话,而说谎族的人永远说假话。 一天,一个博士遇到三个...

  • 不同路人角度下看的高空坠物,究竟是谁说谎了?

    天降花盆砸到人, 不同路人居然看出了不同的“现场”? 谁在心慌,谁在说谎? 各执一词的描述中, 你能找出哪个路人的...

  • 自学Python:找出年龄最大的人

    有一个数据对列表,找到年龄最大的人,并输出结果。下面用三个人来做演示,实际工作中可能会有更多的人,但是操作的逻辑不...

  • 谁在说谎

    引子: 一个冬天的周末,阿勤和秋叶走进电影院。 阿勤是一个教育机构的销售,平时跑跑市场联络客户,至于爱好也很普通,...

  • 谁在说谎

    下午三点多,菜市场忽然闹吵吵的,正巧店里没顾客,我出去看热闹。 一个五十多岁的卷发女人和一个卖青菜的...

  • 谁在说谎?

    谁在说谎?今天,我遭遇了罗生门。 事情并不复杂。下课了,该到学生跑操的时候,我因为脚的问题,没有下去,但是,我去了...

  • 谁在说谎

    昨天第一次听到故事的另一个版本。而且,从小在我眼里就不会撒谎的外公也提供了证词。 妈妈是喝农药走的,关...

  • 谁在说谎?

    路上有很多人,他们都朝着同一个方向,行色匆匆。 这场面让葛天有些诧异,来冀北野游也不是第一次了,这种荒郊野外之地,...

  • 谁在说谎

    1.问题描述 现有张三,李四和王五3个人,张三说李四在说谎,李四说王五在说谎,而王五说张三和李四两人都在说谎。要求...

网友评论

    本文标题:自学Python:找出谁在说谎

    本文链接:https://www.haomeiwen.com/subject/rdypqrtx.html