「已注销」 2022-09-13 17:26 采纳率: 80.6%
浏览 59
已结题

逻辑问题怎么用python写?

题:三个逻辑学家去酒吧喝酒。侍者问是不是都喝啤酒。第一个逻辑家说“我不知道”。第二个也说“我不知道”。第三个说“是的”。

解读:如果逻辑学家不喝,会直接说“不是”。所以“我不知道”的意思是:不知道另外两位喝不喝。这里的布尔值就是三值:是的都喝(true)、不是都喝(false)、不知道。

请用python解题,需要完整代码。

  • 写回答

2条回答 默认 最新

  • 亖夕 新星创作者: python技术领域 2022-09-13 18:05
    关注

    因为都是逻辑学家,第一位和dier位不可能说是的,三位不可能都说不知道,请仔细思考判断不符合题意得情况

    img

    
    a = input("第一位回答:")
    b = input("第二位回答:")
    c = input("第三位回答:")
    dct = {"不喝": 0, "是的": 1, "不知道": -1}
    if dct[a]*dct[b]*dct[c] > 0:   # 相乘大于零有111,喝-1-11两种情况都是全喝
        print("true")
    elif dct[a]*dct[b]*dct[c] == 0:   # 相乘=0000都喝,-100,0-10不都喝
        print("false")
    else:     # 不知道的情况不存在因为第三位逻辑学家总能由前面两人的回答判断喝还是不喝
        print("不知道")
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 创建了问题 9月13日