魔方吧·中文魔方俱乐部

标题: 逻辑推理题 [打印本页]

作者: jimofc    时间: 2012-3-5 19:49:50     标题: 逻辑推理题

一个岛上有3个人,名字为A、B、C,
其中,A和B知道的事情非常多,可以回答任何问题,但A只说真话,B只说假话。C知道的事情少,只能胡乱回答问题。
但对外来人的提问,他们只会回答“是”或“不是”。
问:最少要问几个问题可以分辨出A、B、C三人?需要问什么问题?




补充说明:简单来讲就是A说真话B说假话,A,B知道问题的正确答案

因为什么都不懂,C会随意说是或不是但C并不知道自己说的是不是真话,如果两次问C同样的问题,一次回答“是”,一次回答“不是”,这种情况也是可能出现的。




再次补充。。。目前是4次提问得出答案,原题是限定3次提问。原题在某论坛100+回复仍没有正解。

我自己感觉这个题有一个可以利用的漏洞,然后是可以增加问题的复杂程度来减少判断次数。这两点结合起来不知道能不能判断出。

利用的方法明日再议。。。

[ 本帖最后由 jimofc 于 2012-3-5 22:35 编辑 ]
作者: V10    时间: 2012-3-5 20:21:48

楼上不对啊。。。前排卖瓜子边思考。。。
作者: chuchudengren    时间: 2012-3-5 20:21:49

是不是我理解错了,既然C可以随便选择“是”与“不是”,他要每次都说真话或者每次都说假话,怎么可以区分开呢
作者: 海上晴天    时间: 2012-3-5 20:34:14

不好意思 把二楼删了 二楼这样说的 两个问题问三个人谁是A 确定A后 再指着A问其他两人这人是不是A 回答不是的就是B
这样显然没有考虑C的胡乱回答 我想第一个问题应该是指着一个人问另一个人“他会说谎吗”

[ 本帖最后由 海上晴天 于 2012-3-5 20:50 编辑 ]
作者: V10    时间: 2012-3-5 20:35:48

三个问题。
第一个问题 脱裤子,问三个人,这是JJ吗?
A与B答案肯定不同,c为胡乱回答,那必定会出现两个相同答案(相同答案的两人中必有一人是C)。挑出三人中与其他不同的答案的那个人(只可能是A或B)。
第二个问题 指着下面,问他,这是JJ 吗?
回答是的 则此人是A,反之B
第三个问题 穿裤子先。问那个人剩下两人谁是B或C.。
数学不行。楼下继续
作者: 海上晴天    时间: 2012-3-5 20:39:16

我想先要找出那个乱说的C 然后指着C问另外的一个“他是喜欢乱说的人吗”就能判断了 问题是如何判断谁是C
作者: ursace    时间: 2012-3-5 21:08:01

楼主的题太不严谨,既然C的回答不确定,那就和扔硬币出现正面的概率一样,你有可能连问十次他都回答是或不是,所以何来“最少问几个问题”就能确定一说?
作者: jimofc    时间: 2012-3-5 21:12:41     标题: 回复 7# 的帖子

因为原题比这要难。。。这里解除限定了,而且5L的方法虽然用了5次提问,但能解决问题
作者: V10    时间: 2012-3-5 21:16:57     标题: 回复 8# 的帖子

哥们,,是三个问题。。
作者: V10    时间: 2012-3-5 21:18:19     标题: 回复 8# 的帖子

同一个问题直接问三个人算三个问题?擦
作者: jimofc    时间: 2012-3-5 21:21:32     标题: 回复 10# 的帖子

必须啊。。。。是问需要问几个问题,不是几次。每次只能向一个人问一个问题
作者: 海上晴天    时间: 2012-3-5 21:25:50

问三人“1+1是不是等于2”或者脱裤子问是否是JJ

第一种情况
一人说是两人说不是 那么说是的就是A 再指着另外一人问A“这人总是说谎吗”回答是 那么这就是B  回答不是的就是C
第二种情况
一人说不是两人说是 那么说不是就是B 再指着另外一人问B“这人总是说真话吗”回答不是的就是A
作者: V10    时间: 2012-3-5 21:26:14     标题: 回复 11# 的帖子

答案是什么额。。。最少几次呢,,求答案~~~
作者: jimofc    时间: 2012-3-5 21:28:45     标题: 回复 12# 的帖子

那么这就是B  回答不是的就是C。

C的回答可能和任何一人相同,所以问C问题效率很低
要点是迅速找出或者排除C,从AB二人身上得到正解
作者: jimofc    时间: 2012-3-5 21:31:09     标题: 回复 13# 的帖子

目前不能告诉。。。不提示次数的话可能会有人得出更好的答案
作者: V10    时间: 2012-3-5 21:31:19     标题: 回复 12# 的帖子

对啦,,,我错了,,嗯,对的。。其实第一个群体问后就能得出结论谁是a或b了。。。呵呵
作者: V10    时间: 2012-3-5 21:33:59     标题: 回复 12# 的帖子

不对额。。。前面在正确后面不对。。不能从C处得到结论
作者: 海上晴天    时间: 2012-3-5 21:36:38

原帖由 jimofc 于 2012-3-5 21:28 发表
那么这就是B  回答不是的就是C。

C的回答可能和任何一人相同,所以问C问题效率很低
要点是迅速找出或者排除C,从AB二人身上得到正解
回答问题的是A啊 问A另一人是否总是说谎 因为C有时对有时不对  所以问这个问题 指着C的话A会回答不是

[ 本帖最后由 海上晴天 于 2012-3-5 21:42 编辑 ]
作者: V10    时间: 2012-3-5 21:38:46

四个问题。
第一个问题(算三个问题)。脱裤子问是否JJ.  群问。两个是一个不是。不是的是b。两个不是一个是,回答是的是a。
第二个问题。问得出的a或b剩下两人中一人是否为b或c。得证
作者: jimofc    时间: 2012-3-5 21:43:42     标题: 回复 18# 的帖子

哦。。。刚才没看清,19L的和你的是一种方法。
作者: V10    时间: 2012-3-5 21:48:01

如果问三个同一问题算三个问题的话。。那最少是四个吧。。。楼主公布答案吧。。不然不睡觉了
作者: lulijie    时间: 2012-3-5 22:51:42     标题: 标题

1:先随便选一个人,问“我的身份证掉那边的地上了”
跑到那边看一下地面,再回答“是的”,是B,回答“不是”,是A,因为身份证在自己的口袋里。
不跑直接回答的是C。
所以只要问两个人就能区分出,第三个人不需要问了。
作者: ursace    时间: 2012-3-5 22:58:47     标题: 回复 8# 的帖子

有C就没办法啊,既然C可以随便乱答,那么就有可能问几次都答相同的答案啊!

假如B已确定,然后问1+1的问题确定A和C,可能问10次两人的答案都是2,怎么判断谁是A谁是C?
作者: jimofc    时间: 2012-3-5 23:02:26     标题: 回复 22# 的帖子

C也会去看然后回答。。。
作者: lulijie    时间: 2012-3-5 23:05:54     标题: 标题

也可以这么问,C的口袋里有我的身份证。
也只要问两个人就能确定。
运气好的话,只要问一次即可。
只要被问的人不是C,那问一次即可。
回答是,就是B,被他摸口袋证实的就是C,剩下的就是A了;
回答不是的,就是A,被摸口袋的就是C,剩下的是B。
作者: lulijie    时间: 2012-3-5 23:09:28     标题: 标题

如果摸自己的口袋或不摸就回答的就是C,那么再问其他人一次即可。
作者: jimofc    时间: 2012-3-5 23:14:40     标题: 回复 26# 的帖子

忽略了这个条件:A和B知道的事情非常多:

不论问什么问题,3个人都可以立即回答
作者: lulijie    时间: 2012-3-5 23:21:06     标题: 标题

就是知道的事情非常多,也有他不清楚的,比如我拿一个东西放在某人的口袋里,就是他知道的东西太多,也不可能不去翻看就能保证正确回答
作者: lulijie    时间: 2012-3-5 23:30:37

还有也有AB回答不了的问题。
问B:你从来都说谎么?B就回答不了
问A:如果我现在去问C“1+1=2么”,C会回答是。A也回答不了

[ 本帖最后由 lulijie 于 2012-3-5 23:46 编辑 ]
作者: jimofc    时间: 2012-3-6 07:53:22

可以回答,问b你说谎吗?会得到不是的答案,问你说真话吗?会得到是的答案
作者: liuliuliu789123    时间: 2012-3-6 08:34:26

此题1982年就出现过,有标准答案。关键是第一问。3次解决。(每次问一人)
作者: rubik-fan    时间: 2012-3-6 09:15:26

错了再想想。

[ 本帖最后由 rubik-fan 于 2012-3-6 09:35 编辑 ]
作者: Cielo    时间: 2012-3-6 11:26:06

问B:这个问题你会回答“是”吗?
——————————————————————————————
回楼下贩子:
就是问他们三人以上问题,不知B如何作答……

回楼下下的楼主:
“我现在问你的这个问题,你会回答'是',是吗?”

[ 本帖最后由 Cielo 于 2012-3-6 12:47 编辑 ]
作者: rubik-fan    时间: 2012-3-6 11:32:35

cielo的没看懂~
作者: jimofc    时间: 2012-3-6 12:30:56     标题: 回复 33# 的帖子

"这个问题"是什么问题?
作者: ursace    时间: 2012-3-6 14:03:01

23楼的问题如何解答?
作者: Cielo    时间: 2012-3-6 14:29:06

原帖由 ursace 于 2012-3-6 14:03 发表
23楼的问题如何解答?


23楼的,只要已经确定了一个人就好办了……
假如你已经确定B了,就随便指着另一个人,问B:“这是A吗?”

33楼的问题如何解答?
——————————————————————————————

楼下的楼主说得对!
原题目中说AB知道任何问题的答案,我就纯属无聊了一下

[ 本帖最后由 Cielo 于 2012-3-6 16:13 编辑 ]
作者: jimofc    时间: 2012-3-6 15:40:23     标题: 回复 37# 的帖子

就比如这道题
”有一个“说谎国”和一个“老实国”,说谎国的人从来不说真话,老实国的人从来不说假话。一天,两个说谎国。。。。以下省略“

问这个问题是一样的,在没有人回答的时候它没有确切的答案,产生悖论的原因是由于你从回答的结果逆推造成的,

只有当有人回答了这道题的时候,答案才出现。

没有像“1+1=2,对吗?”这种题有确切答案。

而且,它不能解决这道题。。

[ 本帖最后由 jimofc 于 2012-3-6 15:41 编辑 ]
作者: yq_118    时间: 2012-3-6 16:24:57

“在一个岔路口有两个人,一个只说真话,一个只说假话。只向一个人提一个问题找出正确的路。”

感觉应该从这个问题出发。
作者: Cielo    时间: 2012-3-6 17:52:59

原帖由 yq_118 于 2012-3-6 16:24 发表
“在一个岔路口有两个人,一个只说真话,一个只说假话。只向一个人提一个问题找出正确的路。”

感觉应该从这个问题出发。


两个人还是容易得多,问甲:“你说乙会说哪条是正确的路?”
作者: 最快一分半    时间: 2012-3-6 17:56:52

很喜欢这种题,不过。。好像脑子不怎么够用
作者: 海上晴天    时间: 2012-3-6 18:52:59

又想了想 最多三个问题就可以
第一问应该是 对着其中一人问另一人“假如我问他1+1是不是等于2,他将如何回答”

如果答不上来 对着的这人就是C 你问的这人不是A就是B 因为其他两人无法判断C会如何回答 那么第二问就是“他喜欢乱说话吗”

如果第一问对方回答“不是”
第一种情况是你问的这人就是A 对着的那个人就是B  那 第二问 指着A去问B“如果我问他 你是不是总爱说真话 他会如何回答”B会说不是
第二种情况是你问的那人是C  再问另一人上面的问题 这人就答不上来 确定了C就好办了 第三问他喜欢乱说话吗

如果第一问对方回答“是”那人就是C

[ 本帖最后由 海上晴天 于 2012-3-6 19:00 编辑 ]
作者: 铯_猪哥恐鸣    时间: 2012-3-6 19:25:57

42楼。。不能问“他将如何回答”这个问题。。。只能问一般疑问句。。。
作者: 铯_猪哥恐鸣    时间: 2012-3-6 19:27:00

另外。。问A,B每次最多获得1bit信息,问C每次获得0bit信息。。请问如何确保问3次可以获得2.6bit(log 2 6)的信息?总觉的三次不靠谱。。
作者: 海上晴天    时间: 2012-3-6 21:55:54     标题: 回复 43# 的帖子

为何不能问 我觉得可以 如果硬要不能问的话 那就是我在12楼的答案了
作者: jimofc    时间: 2012-3-6 22:02:26     标题: 回复 45# 的帖子

如果答不上来 对着的这人就是C,
不管什么问题,问C都是白问,C可以答出任何问题。。。基本上问C是得不出有用信息的
作者: 海上晴天    时间: 2012-3-6 22:15:04     标题: 回复 46# 的帖子

如果答不上来 对着的这人就是C
我这句话的意思就是 已经可以确定C了 然后指着C问其他一个他是不是总爱乱说话 就能判断其他两人
作者: yq_118    时间: 2012-3-7 00:07:08

维基百科上有,其中一个人随机说真话或说假话,而不是乱说话。
http://zh.wikipedia.org/wiki/%E5%8F%B2%E4%B8%8A%E6%9C%80%E9%9B%A3%E9%82%8F%E8%BC%AF%E8%AC%8E%E9%A1%8C
作者: 海上晴天    时间: 2012-3-7 01:27:04     标题: 回复 48# 的帖子

好吧 我就把42楼答案中的所有“喜欢乱说话”改成“喜欢随机真话或假话”、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、还有什么毛病吗

[ 本帖最后由 海上晴天 于 2012-3-7 01:29 编辑 ]
作者: 海上晴天    时间: 2012-3-7 01:34:27

看了48楼的链接 个人觉得公认的标准答案也不一定是唯一答案
作者: liuliuliu789123    时间: 2012-3-7 09:28:45

原帖由 yq_118 于 2012-3-7 00:07 发表
维基百科上有,其中一个人随机说真话或说假话,而不是乱说话。
http://zh.wikipedia.org/wiki/%E5%8F%B2%E4%B8%8A%E6%9C%80%E9%9B%A3%E9%82%8F%E8%BC%AF%E8%AC%8E%E9%A1%8C

你的连接比LZ的题更难一层,,,,还真不好想啊。。
作者: rubik-fan    时间: 2012-3-7 11:19:41

原帖由 海上晴天 于 2012-3-6 21:55 发表
为何不能问 我觉得可以 如果硬要不能问的话 那就是我在12楼的答案了

因为题干明确说了,他们只回答是、不是。所以只能问一般疑问句
你好好看题目了没?
作者: V10    时间: 2012-3-7 12:28:49

还在讨论呐。。。我都被扣分了。。。5555
作者: 海上晴天    时间: 2012-3-7 12:51:56     标题: 回复 52# 的帖子

题干中说 对外来人的提问 我理解成可以问任何问题
(题目中没说不能问他们回答不了的问题)
我只能说42楼的回答是我独立思考的结果
作者: 龚永明魔方    时间: 2012-3-7 14:42:36

理一理:
--------------------------------
如果先淘汰B
剩下A与C
如果先淘汰A
剩下B与C
---------------------------------

如何先淘汰C,剩下A与B

----------------------------------
作者: 玉逸风    时间: 2012-3-8 15:03:28

第一个问题:“太阳是不是从东方升起?”必然会出现以下两种情况。

第一种情况:当有两个人回答是,则那个回答不是的人就是B。然后指着AC中的一个人问B:“这个人是不是A”若B回答不是,则指着的那个人就是A,反之是C。

第二种情况:当两个人回答不是,则回答是的人就是A,然后指着BC中的一个人问A:“这个人是不是B”若回答是,则被指的人是B,反之是C。

[ 本帖最后由 玉逸风 于 2012-3-8 15:07 编辑 ]
作者: jimofc    时间: 2012-3-8 16:31:24     标题: 回复 56# 的帖子

正确。。。这个答案前边已经有了
作者: Talent    时间: 2012-3-8 20:48:45

貌似有点好玩!~

[ 本帖最后由 Talent 于 2012-3-8 20:52 编辑 ]
作者: Talent    时间: 2012-3-8 20:54:08

上面的答案都是4个问题

我算到了一个 只问3个问题的方法

首先给3个人编号  1   2   3        (下面的3字母组合表示可能的排序组合)
问第一个人  "如果我问你 他(你指着2号)是否是C,你会回答是 对吗?"
(1)ACB
    BCA         这两组 第一个人会回答是
(2)ABC
    BAC         这两组 第一个人会回答不是
(3)CAB
    CBA         这两组 第一个人回答不能确定
所以     若第一个人回答是    则排除(2)这两组的情况
            剩下 ACB
                    BCA
                    CAB
                    CBA
            问第三个人"其他两个人其中一人是C吗?"      若回答是         则为BCA     CBA    即3号是A   问3号"1号是否是C?" 即可
                                                                                   若回答不是     则为ACB     CAB    即3号是B   为3号"1号是否是C?" 即可   

            若第一个人回答不是     则排除(1)这两组的情况
            剩下ABC
                   BAC
                   CAB
                   CBA
            问第二个人"其他两个人其中一人是C吗?"          若回答是          则为BAC    CAB     即2号是A   问2号"1号是否是C?" 即可
                                                                                   若回答不是         则为ABC    CBA     即2号是B   问2号"1号是否是C?" 即可         

所以     问题是3个  内容相同但是顺序不同     不知原题意思是否要求事先规定提问顺序

原创回答      绝无抄袭      如有雷同     纯属巧合      (耗时1个钟头啊~~!~)

求加分
作者: Talent    时间: 2012-3-8 21:18:28

刚才找了一下原题   发现非常nb


首先 (1) "是"  "否"   用其他音节代替   总之就是不明意思

例如   啊  和  哦     但不知道  啊代表是   还是哦代表是

第二 (2) 在提问者出一题条刁钻的题目时   可能导致C的答案是唯一的(一定是"是"  或者是"不是")
因为规定了   C任意选择假话或者真话回答   而不是任意说是或者不是




其实我觉得(1)是增加难度     而(2)是降低难度        而楼主的意思应该是舍弃(1)

我怀疑原题在传来传去的时候 (2)已经被"磨"掉了  可能大家没意识到(2)的重要性

所以楼上那些回答问题的人都忽略了(2)   我也一样   

说明一下    (2)的重要性    可以看我上面的答案中  第一个问题      虽然不是针对C的


大家交流一下吧

[ 本帖最后由 Talent 于 2012-3-8 21:22 编辑 ]
作者: 玉逸风    时间: 2012-3-8 22:25:46     标题: 回复 59# 的帖子

我觉得我的方法,两个问题就解决了。
作者: Talent    时间: 2012-3-8 22:48:07     标题: 回复 61# 的帖子

你一个问题问了3个人      这算3个问题      


请你试着  一个人问一个问题
作者: liuliuliu789123    时间: 2012-3-9 08:31:40

原帖由 Talent 于 2012-3-8 20:54 发表
上面的答案都是4个问题

我算到了一个 只问3个问题的方法

首先给3个人编号  1   2   3        (下面的3字母组合表示可能的排序组合)
问第一个人  "如果我问你 他(你指着2号)是否是C,你会回答是 对吗?"
(1)ACB ...

探讨一下。。。。。
你的“首先给3个人编号  1   2   3        (下面的3字母组合表示可能的排序组合)
问第一个人  "如果我问你 他(你指着2号)是否是C,你会回答是 对吗?"
(1)ACB
    BCA         这两组 第一个人会回答是
(2)ABC
    BAC         这两组 第一个人会回答不是
(3)CAB
    CBA         这两组 第一个人回答不能确定”中。。。。。。(1)、(2)欠妥?。
我认为BCA这一组B会说“不是”:因为他要回答你问句中“,,,,对吗?”这最后一问。有“否否”的意思。
同理:BAC这一组B会说“是”。
这样你仍然不能确定1、2、3中谁不可能是“C。。。
另外:却有雷同、实属巧合:
http://bbs.mf8-china.com/viewthread.php?tid=57432&highlight=
作者: Talent    时间: 2012-3-9 16:23:27

第一人是针对"对吗?"回答的     你可以把回答"是" 当作"对"
作者: 铯_猪哥恐鸣    时间: 2012-3-11 02:01:57

据说。。在题干意义下,4个问题已经是最优解。。目测信息论可以轻松证明这个结论吧?
作者: 玉逸风    时间: 2012-3-11 12:53:05

原帖由 铯_猪哥恐鸣 于 2012-3-11 02:01 发表
据说。。在题干意义下,4个问题已经是最优解。。目测信息论可以轻松证明这个结论吧?


如果说问三个人同一个问题算三个问题,那么四种用该就是最少了。。。。。。。。。。。。。。。。
作者: Talent    时间: 2012-3-11 17:58:36

同学们    我觉得三个就够了
作者: 894058936    时间: 2012-3-12 13:43:53

我是来看答案的
个人认为有点可以用二进制编程解决 呵呵 随机0/1
10 set A等于1/0 to 0/1
20 if B等于0/1 then goto 10
作者: phileas    时间: 2012-4-4 12:53:15

设3个人是x,y,z。

第一个问题:问x:如果我问你“y是C“吗?你的回答是"是"吗?
如果回答是“是”。两种情况:
1. x是C
2. x不是C,那么y是C。
总之z不是C。
如果回答是"否"。两种情况:
1. x是C
2. x不是C,那么y不是C。
总之y不是C。

也就是说,第一个问题能确定一个不是C的人。

再把上面这个问题类似问他两次(把其中的C换成想要确定的身份),就能够确定出其中两个人的身份,这样第三个人的身份也自然清楚了。

三个问题足够。

[ 本帖最后由 phileas 于 2012-4-4 12:56 编辑 ]
作者: phileas    时间: 2012-4-4 13:17:25

48楼链接也看了,如果da,ja未知,那么把第一个问题改成问x:如果我问你“y是C“吗?你的回答是"da"吗? 即可。
任性之神/随机之神的澄清则完全没必要了。随机之神同样能用上面的办法解决。
作者: jimofc    时间: 2012-4-6 08:14:00

原帖由 phileas 于 2012-4-4 12:53 发表
设3个人是x,y,z。
第一个问题:问x:如果我问你“y是C“吗?你的回答是"是"吗?
如果回答是“是”。两种情况:
1. x是C
2. x不是C,那么y是C。
总之z不是C。
如果回答是"否"。两种情况:
1. x是C
2. x不 ...


如果第一问恰好z是c怎么办
作者: phileas    时间: 2012-4-6 17:00:27

原帖由 jimofc 于 2012-4-6 08:14 发表
如果第一问恰好z是c怎么办


不影响"y不是C"或"z不是C"的判断。
之前写得有些简略,请仔细思考下。

[ 本帖最后由 phileas 于 2012-4-6 17:01 编辑 ]




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2