魔鬼与天使的问题?有难度哟

FROM 2001-12-11 06:32:29
魔鬼永远说假话,天使永远说真话,魔鬼和天使长得一摸一样,问他们中的任何一个人把他们分辨出来,该怎么办。要求用计算机实现。代码比较难写!
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
上海大闲人 2001-12-11
  • 打赏
  • 举报
回复
方法如下:
对其中一人A说:“如果我问另一个人B,你是魔鬼还是天使,B会怎么回答?”
如果A是天使,他会说B的回答是魔鬼,如果A是魔鬼,他会说B的回答是天使。
用程序来实现,应采用面对对象的方法,说真话和说假话是对象的行为,对应类的私有函数,
欢迎指正!谢谢
minkerui 2001-12-11
  • 打赏
  • 举报
回复
离散数学?
FROM 2001-12-11
  • 打赏
  • 举报
回复
各位兄台看清楚题目呀,要求写出代码,五四名么写代码呢?原因很简单,么找出所有的答案了,么的是全集,
并且题目的初衷在于问题于魔鬼,天使么有关系,不能问1+1=2对不对等等!(因为是讨论算法所以,现在只是从算法的角度考虑问题)
nofog 2001-12-11
  • 打赏
  • 举报
回复
s = (p∧q)∨(┐p∧┐q)
nofog 2001-12-11
  • 打赏
  • 举报
回复
这是一本 趣味电子学 (英文名我忘了,很小的时候看的)书上开篇的题目
原题是 逻辑学家与海盗的问题:

逻辑学家渡假期间,被海盗捉到了一个荒岛上,关在监狱里
海盗头(对逻辑学家):你面前有两个罐子,一个里面装的是毒蛇,一个里面装着牢门的钥匙
我有个助手,要么说真话,要么说假话,你只能问他有一个问题,他也只回答
是或者不是,然后你选择打开一个罐子。钥匙,你获得自由。毒蛇,你难逃
一死。
逻辑学家(对助手):“左边的罐子是钥匙而你说的是真话 或者
左边的罐子是毒蛇而你说的是假话。”
这句话正确么?

p: 左边是钥匙
q: 助手说的是真话。
_ _
逻辑学家的话 s= p*q + p*q
强盗助手的回答 s'
p q s s'
1 1 1 1
1 0 0 1
0 1 0 0
0 0 1 0

由上可以看出 p = s'
所以根据助手的回答就能判断。

(天资驽笨,直到初中明白)
mathe 2001-12-11
  • 打赏
  • 举报
回复
问1+1=2对不对就行了,这么麻烦干吗。
starfish 2001-12-11
  • 打赏
  • 举报
回复
比如你就问他们:“魔鬼永远说假话,天使永远说真话这句话对不对?”,回答对的那个就是天使,呵呵
starfish 2001-12-11
  • 打赏
  • 举报
回复
问他们一个显然易见的答案为true的问题,回答false的那个就是魔鬼:)
emmai 2001-12-11
  • 打赏
  • 举报
回复
有趣

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧