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

  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号

原文地址:https://www.cnblogs.com/ygsworld/p/10796443.html

时间: 2024-07-30 02:18:00

几个比较有意思的逻辑问题的相关文章

微信生态圈的发展分析

微信生态圈是一种模式,一种微信的经营或者说是运营模式,当然现在过早地提出微信生态圈的概念有一点点太早,但是微信发展出自己的生态圈是迟早的事,早做准备也没什么不好的.类比一下小米生态圈.小米生态圈包括了小米手机,这是小米赖以生存的东西.还有小米家居电器,电视机之类的,为小米提供了另一条可以发展的道路.接着还有小米智能穿戴设备.小米WiFi等等.类似的微信也能形成自己的生态圈.个人认为,将微信的发展规划比作成一个生态圈,可以反映产品的生命特性,就像一个生物一样,他有自己的生命规律和一些生存准则.正如

SQL Server调优系列进阶篇(如何索引调优)

前言 上一篇我们分析了数据库中的统计信息的作用,我们已经了解了数据库如何通过统计信息来掌控数据库中各个表的内容分布.不清楚的童鞋可以点击参考. 作为调优系列的文章,数据库的索引肯定是不能少的了,所以本篇我们就开始分析这块内容,关于索引的基础知识就不打算深入分析了,网上一搜一片片的,本篇更侧重的是一些实战项内容展示,希望通过本篇文章各位看官能在真正的场景中找到合适的解决方法足以. 对于索引的使用,我希望的是遇到问题找到合适的解决方法就可以,切勿乱用!!! 本篇在分析出索引的优越性的同时也将负面影响

Linux内核同步机制--转发自蜗窝科技

Linux内核同步机制之(一):原子操作 http://www.wowotech.net/linux_kenrel/atomic.html 一.源由 我们的程序逻辑经常遇到这样的操作序列: 1.读一个位于memory中的变量的值到寄存器中 2.修改该变量的值(也就是修改寄存器中的值) 3.将寄存器中的数值写回memory中的变量值 如果这个操作序列是串行化的操作(在一个thread中串行执行),那么一切OK,然而,世界总是不能如你所愿.在多CPU体系结构中,运行在两个CPU上的两个内核控制路径同

Linux内核同步 - Seqlock

一.前言 普通的spin lock对待reader和writer是一视同仁,RW spin lock给reader赋予了更高的优先级,那么有没有让writer优先的锁的机制呢?答案就是seqlock.本文主要描述linux kernel 4.0中的seqlock的机制,首先是seqlock的工作原理,如果想浅尝辄止,那么了解了概念性的东东就OK了,也就是第二章了,当然,我还是推荐普通的驱动工程师了解seqlock的API,第三章给出了一个简单的例子,了解了这些,在驱动中(或者在其他内核模块)使用

十倍效能提升——Web 基础研发体系的建立

1 导读 web 基础研发体系指的是, web 研发中一线工程师所直接操作的技术.工具,以及所属组织架构的总和.在过去提升企业研发效能的讨论中,围绕的主题基本都是——”通过云计算.云存储等方式将底层核心技术封装成基础设施“.而我们在实践中发现,在 互联网渗入到各行各业,业务爆发 企业竞争白热化,对速度和品质要求越来越高 一线工程师队伍越来越庞大,管理成本增高 这样的多重背景下,除了底层核心技术外,一线 web 研发效能的问题也逐渐成为决胜战场的重要因素. 然而在现实中我们看到,因为一线的研发工作

[java,2017-05-15] 内存回收 (流程、时间、对象、相关算法)

内存回收的流程 java的垃圾回收分为三个区域新生代.老年代. 永久代 一个对象实例化时 先去看伊甸园有没有足够的空间:如果有 不进行垃圾回收 ,对象直接在伊甸园存储:如果伊甸园内存已满,会进行一次minor gc:然后再进行判断伊甸园中的内存是否足够:如果不足 则去看存活区的内存是否足够:如果内存足够,把伊甸园部分活跃对象保存在存活区,然后把对象保存在伊甸园:如果内存不足,向老年代发送请求,查询老年代的内存是否足够:如果老年代内存足够,将部分存活区的活跃对象存入老年代.然后把伊甸园的活跃对象放

单张图片在线预览+图片压缩

该方法未测试浏览器兼容性,仅在谷歌上进行过测试. 图片在线预览:一般思路是通过获取file上的绝对路径并将路径赋值给src实现在线预览功能,但现实中的浏览器,尤其是高版本浏览器由于用户安全性考虑,不会让开发者通过file获取到绝对路径,因此使用H5中的画板功能,将图片进行重绘后,得到base64编码的dataURL,再将这个地址赋值给src实现在线预览功能. 图片压缩原理:将大图根据预定尺寸进行尺寸修改. <!DOCTYPE html> <html lang="en"

计算复杂性读书笔记(二): 论怎么把一个证明写得有意思

比特猪 [email protected] 首先是版权声明,版权归属为:东南大学知识科学与工程实验室(kselab@seu ).其实这个系列笔记实在是因为自己太笨,没法了解很多东西,觉得有必要写下来梳理一下.所以不管大家看着有帮助也好,嗤之以鼻也好,实在是没有必要转载.虽然文拙笔劣,不过毕竟也是大冬天花时间一个个字敲下来的,所以如果非要转载,我也希望注明出处.如能致此,感戴莫名! 2.1. 补充 文蛤时期,伟大的先辈发明出了一种优雅活泼奔放的喷人方法:文字皮逗.大家伙儿看谁比自己牛逼,就买横幅写

ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

在ORACLE数据库中有物理读(Physical Reads).逻辑读(Logical Reads).一致性读(Consistant Get).当前模式读(DB Block Gets)等诸多概念,如果不理解或混淆这些概念的话,对你深入理解一些知识无疑是一个障碍,但是这些概念确实挺让让人犯晕的.下面我们总结.学习一下这方面的知识点.捋一捋他们的关系和特点,希望对你有所帮助. 物理读(Physical Reads) 从磁盘读取数据块到内存的操作叫物理读,当SGA里的高速缓存(Cache Buffer