几个比较有意思的逻辑问题

Posted ygsworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几个比较有意思的逻辑问题相关的知识,希望对你有一定的参考价值。

  1. 诚实者与说谎者的问题:现有A和B两扇门,其中有一个是我要打开的,即正确的门,有一个是错误的门,有两个守门员a和b,他们两都知道正确的门和错误的门,他们会告诉你答案但是它他们有一个是诚实的,有一个是说谎的。现要求,只能问他们其中一个人一个问题,怎么才能打开正确的门。
  2. 海盗分金问题:5个海盗(ABCDE)抢得100枚金币,他们按抽签的顺序依次提方案:首先由A提出分配方案,然后5人表决,投票要超过半数同意方案才被通过,否则他将被扔入大海喂鲨鱼,如果上一个人死了,就由下一个人提出方案,继续投票。假定“每个海盗都是绝顶聪明且很理智”,那么“第一个海盗提出怎样的分配方案才能够使自己的收益最大化?”
  3. 善变者问题:有5个人,其中有一个是诚实的,其余4个是善变的。善变就是对于同一个问题,每次你问他,他都会交替的回复你,即第一次错误,第二次正确,第三次错误...当然,第一次正确还是错误是不知道的。现要求:只能问两个问题,找出诚实的人,这两个问题,可以问同一个人,也可以组合问不同的人。
  4. 十个人排队带帽子的问题:十个人排成一队,现有黑白两种颜色的帽子,每个人带着其中一种颜色的帽子,每个人不知道自己的帽子的颜色,但是可以看到前面人的帽子的颜色,也能听到后面人的说话。现在,从最后一个人问他帽子的颜色,回答错误直接凉凉,回答正确可以或下来,依次向前。问:怎么能救到更多的人??

  •  诚实者与说谎者  问题是:请你告诉我,另一个人的答案哪一个?分析如下:

技术图片技术图片

 所以无论第一个问的人是诚实的还会说谎的,得到的答案都是错误的那个门,所以正确的门马上就能知道了


  •   海盗分金问题  (97,0,1,2,0)或(97,0,1,0,2)

这题是比较有意思的,当初的我天真的以为5人平均分,1人20就共同生存,皆大欢喜了。知道答案后才知道自己太天真了.....首先这个问题不能从A开始开始,而是应该从后往前考虑,即逆向推导,并且还要注意的一个原则,生命诚可贵,即前提一定是自己要活下来。在前面的人一定是最惨的,因为稍有分配不慎,就会被集体投票处决,相反,第5个人一定是最安全的,因为如果前面4个人都被投票处死,那么E就可以独吞了如果ABC都死了,那么E一定会把D处死,因为只有两个人,无法出现超过半数票同意决策的情况,所以D一定不会让C死掉,所以3号的决策一定是让自己获得最大利益->如果AB都死的话,C的决策一定是(100,0,0).但是B如果不死呢,就不会轮到C决策了,所以B的决策一定会为自己拉到赞成票,即D和E的票,给他们一人1个,相比C的决策一个都拿不到,得到一个也是很不错的了,所以B的分配会是(98,0,1,1),这样无论C同不同意,都会执行决策。好,最后到到A,A一定知道BCD他们的如意算盘,所以,A会保住自己的性命,并且拿到最多的的金币。所以A只要让另外两个人支持自己可以了,同时A要获得最大利益,所以A会这样分配(1号方案(97,0,1,2,0)或  2 号方案(97,0,1,0,2))。1、2号方案都是自己拿97,这是最大利益了,为什么呢??1号方案给了C 1个,D 2个,这样D一定会支持他,因为如果A死了,B的决策只会让D自己拿到1个,肯定拿2个利益大啊。同理,B的决策不会给C金币,A这里给了1个,当然最好不过了。E不给也行,不影响最终决策通过。2号方案,(97,0,1,0,2)C的票是肯定赞成的,E这里拿了两个,也会赞成,B不用给,D不用给,也不影响决策通过。这里给E一个可以吗??答案是不行的,因为A和B的方案都是给E一个,所以D可以赞成A和B的任何一个,A为了保险,会多给一个。当然,不管哪个方案,自己都会拿97个走。


  •  善变者问题

第一个问题:你是诚实的吗??

第二个问题:根据上一个问题的回答可分为:谁是诚实的?、谁不是诚实的?

为什么这么问呢?第一个问题,因为5个人都不确定,所以问谁都一样,但是,我们可以根据第一个问题的回答推测出他下一个问题回答正确型来针对性的提出第二个问题.

技术图片

由于第一次提问身份不明,所以只能根据对一个问题的回答得出下一次回答的正确性,第一次回答Yes后,只能是诚实的人的回答或是善变者的第一次欺骗,那么无论接下来继续问什么问题,都会得到正确答案,所以第二个问题直接问是谁就好了。如果第一个问题回答是No,只能是善变者的的第一次正确回答,那么下一次回答一定是错误的,为了将错就错,问他谁不是诚实的人,他一定会说出诚实的人,因为要欺骗啊,所以最终都得出诚实的人。


  •  戴帽子的问题  确保9.5个人能活下来。

为什么.5呢?因为最后一个人只能看运气。因为排队顺序不确定。所以大家定这样一个规则,最后一个人根据前面一种帽子的数量做决策,如果黑色帽子数为奇数,则回答黑色,如果为偶数,则回答白色。当然,这个壮举保证了前面9个人活了下来,自己只能看运气了。如果最后一个回答是黑色,即前9个人中有奇数个带黑色帽子的,这下第9个人数一下前8个人的黑色帽子数,如果是奇数,那么自己的帽子一定是白色,回答白色就行,如果黑色帽子数为偶数,那么自己一定是黑色帽子,回答黑色就行。这时,到8号回答,他会根据第10个人的回答判断黑色帽子的数量,在根据第9个的回答判断黑色帽子的数量.....一直到1号

技术图片

 

以上是关于几个比较有意思的逻辑问题的主要内容,如果未能解决你的问题,请参考以下文章

关于List和String有意思的几个应用

(53)C#里几个有意思的递归函数

(53)C#里几个有意思的递归函数

几个有意思的Linux命令

对视频剪辑应用灰度图像变换+Moviepy生成灰度视频处理遇到几个有意思的问题

js中这些符号是啥意思:&,,===,!,++