动动你的小脑壳

文章列举了一系列逻辑和数学谜题,包括绿眼谜题、海盗分金币问题、苹果装箱的优化方法等,展示了如何运用数学归纳法、二进制原理和策略性思考来解决这些问题。这些谜题展现了在信息有限的情况下,如何通过推理和计算找到最优解决方案。
摘要由CSDN通过智能技术生成

绿眼谜题

独裁者将100个绿眼睛的完美逻辑家们囚禁于岛上,他们可以看到另外99个人是绿眼睛,却无从得知自己是绿眼睛;每个人都可以向独裁者申请离开岛,条件如下:如果自己是绿眼睛则离岛,否则死亡。每个逻辑家在不确认自己是绿眼睛的情况下,都不会申请离岛。当某天他们获取到一个外界信息:你们至少有1个人是绿眼睛,100天后,逻辑家们集体离岛,请问是为什么。

题解

数学归纳法

假设逻辑家的个数为n;
当n=2时;第1天,2个逻辑家都不会离岛,因为他们都看到了对方的绿眼睛;第2天,当他们得知彼此第1天没有离岛,说明自己是绿眼睛,2个逻辑家都申请离岛。
当n=3时;第1天,每个逻辑家都会先假设自己不是绿眼睛,基于此假设,另外2个逻辑家应当在2天离岛;第2天,因为每个逻辑家都在基于自己不是绿眼睛的假设,观测其他2个逻辑家的行为,都不会离岛;第3天,因为第2天另外2个逻辑家没有离岛,假设不成立,确定自己是绿眼睛,3个逻辑家申请离岛。
当n=4时;第1天,每个逻辑家都会先假设自己不是绿眼睛,基于此假设,另外3个逻辑家应当在3天离岛;第4天,因为第3天另外3个逻辑家没有离岛,假设不成立,确定自己是绿眼睛,4个逻辑家申请离岛。
归纳可得:当n=100时,第100天,100个逻辑家申请离岛。

疑问

对于逻辑家们的离岛选择,需要提供一个对他们每个人都是已知的信息:你们至少有1个人是绿眼睛。我的数学归纳法也是基于该信息开始推理,但这是一个已知信息,为什么在没有该信息的支持下,逻辑家们就不会离岛呢。

烧绳计时

若干根相同的绳子,从一头点燃绳子,烧尽需要1个小时;注意绳子是不均匀的,即并不是烧到中点为30分钟;请计时1小时15分钟。

题解

依题意得:从一头点燃绳子,烧尽需要1个小时;从两头点燃绳子,烧尽需要30分钟。

  1. 取三个根绳子,第一根点燃两头,第二根点燃一头,第三根先不点燃;
  2. 当第一根绳子烧尽时(30分钟),点燃第二根绳子的另一头;
  3. 当第二根绳子烧尽时(15分钟),点燃第三根绳子的两头;
  4. 待第三根绳子烧尽(30分钟),计时完成;(30+15+30 = 1小时15分钟)

海盗分金币

是说5个海盗抢得100枚金币,他们按抽签的顺序依次提方案:首先由1号提出分配方案,然后5人表决,投票要超过半数同意方案才被通过,否则他将被扔入大海喂鲨鱼,依此类推。假定“每个海盗都是绝顶聪明且很理智”,那么“第一个海盗提出怎样的分配方案才能够使自己的收益最大化?”

题解

从后往前推导:

  1. 当1-3号被喂鲨鱼后,4号的方案一定会被否决,5号独吞金币,所以4号一定要无条件支持3号的方案;
  2. 在1.的基础上,3号会给出(100, 0, 0)的分配方案,3、4号同意,方案通过;
  3. 在2.的基础上,2号会给出(98, 0, 1, 1)的分配方案,2、4、5号同意,方案通过;毕竟对于4、5号来说,1 > 0;
  4. 在3.的基础上,1号会给出(97, 0, 1, 0, 2)或(97, 0, 1, 2, 0)的分配方案,1、3、4或5同意,方案通过。

苹果装箱

有1000个苹果,分别装在10个箱子里。任意给出1到1000之间的一个整数,都可以用某几个箱子中的苹果数量相加获得此数。请列出这10个箱子中分别有多少个苹果。

题解

这个问题本质上是考察对二进制的理解
10个比特位可以表示2^10=1024个数字(0~1023);所以,我们可以在第1个箱子放 2 0 2^0 20个苹果,第2个箱子放 2 1 2^1 21个苹果,…,第9个箱子放 2 8 2^8 28个苹果,第10个箱子放剩余的苹果。
对于给出的任意1到1000之间的一个整数,我门只需要将其转换成二进制表示,如500=1,1111,0100
我们只需要组合:第3、5、6、7、8、9个箱子里面的苹果;4+16+32+64+128+256=500;
再举例:999=11,1110,0111,我们注意到,此时最高位为1,但是第10个箱子里面只有1000-511=489个苹果;所以,对于大于511的苹果数,我们要先取第10个箱子的苹果,然后其他箱子再凑出剩余的苹果数;999-489=510=1,1111,1110;这个很显然,只需要不取第1个箱子的苹果就好啦。

时钟角度

计算3时15分,时针与分针的夹角

题解

圆为360度,3时15分,分针指向3,时针介于3与4夹角的 15 60 = 1 4 \frac{15}{60}=\frac{1}{4} 6015=41处(时针从3走到4需要60分钟,现在走了15分钟);圆被划分为12个小时,则每个小时之间的夹角为 360 12 = 30 \frac{360}{12}=30 12360=30度,所以时针跟分针的夹角为 30 × 1 4 = 7.5 30\times\frac{1}{4}=7.5 30×41=7.5度。

质差硬币

8个硬币,其中1个质量比其他的轻,求至少要使用天平称几次,才能找出该硬币

题解

对于该类问题,我们要做是尽可能快地筛除数据。

  1. 各取3枚硬币放置天平,如果天平平衡,质差硬币在剩余2枚;进入2.;如果天平不平衡,进入3.
  2. 剩余两枚硬币称重
  3. 3选2称重;
    所以至少要2次称重;这题跟我们平时用的二分法不太一样,以前我们用二分法每次可以筛除一半的数据;这里用3、3、2可以筛除6个或者5个数据。

白鼠试毒

有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时鉴别出哪瓶水有毒。

题解

10只小白鼠;因为 2 10 = 1024 > 1000 2^{10}=1024 > 1000 210=1024>1000
将水从从1到1000编号,并转换为二进制表示;10只小白鼠每1只对应着二进制下的1位,例如,对于表示最低位的小白鼠,遍历从1到1000的数字二进制表示,如果该位为1,则小白鼠尝一点该瓶水;以此类推;24小时后常看小白鼠们的存活情况,10只小白鼠对应二进制的10位,死则为1,活则为0,得到的结果就是对应有毒的水(因为尝过该瓶水的小白鼠都死了)。

赛马

64匹马,8条赛道,无测速工具,需要赛马多少次找出前4名。

题解

对于该类问题,我们要做是尽可能快地筛除数据。

  1. 64匹马分8组,赛马8次,得到每个小组内的名次先后;在这一步,我们可以筛除每组的后4名,共32匹马;
  2. 每小组第1名赛马,得到组间的名次先后,在这一步,我们可以筛除4+4+4+4+3+2+1=22匹马;因为对于组间赛马的第4名,其对应组内的剩余3匹马肯定在前4名之外,以此类推。
  3. 此时,我们已经明确了第1名,还要确认剩余3名;共剩余3+3+2+1=9匹马相对速度未能完全知道。
  4. 最后,我们优先选取每组较差的马,即剩余第1组的第2名或者第2组的第一名;如果幸运的话,我们将在此轮得出前4名;否则需要加赛1轮;
    所以,11轮可以保证找出前4名。

黑白小球

箱子中放入100个黑球和100个白球;每次从箱子中取出2个球;若为同色,则放入1个黑球,否则放入1个白球;问连续操作后,最后箱子剩余的最后1个球为什么颜色。

题解

这题抽象为连续异或操作;我们可以把黑球看作0,白球看作1:(1)同色0^0 = 0; 1^1=0;(2)异色1^0=1;
所以:连续操作就是100个0和100个1连续进行异或运算(因为异或运算满足交换律,所以每步取出的球颜色不重要,反正都是这200个球的异或运算,每次异或的结果代表着放回的球),因为黑白球的个数都为偶数个,所以运算结果为0,即最后剩余的球颜色为黑色。

完全平方数

一个4 位数,前 2 位相同,后 2 位相同;且为完全平方数;

题解

n = 1000a + 100a + 10b + b = 1100a + 11b = 11 * (100a + b) = 11 * (99a + a + b)
a + b必须为 11 的倍数,所以 a+b = 11
n = 11 * 11 * (9a + 1),9a+1为完全平方数,a=7,63+1 = 64
n = 7744

夫妇握手

有5对夫妇举行家庭聚会。每一个人都可能和其他人握手,但夫妇之间绝对不握手。聚会结束时,A先生问大家握手几次,结果是每个人的握手次数都不相同,那么请问A先生的太太握手几次?夫妇握手

题解

可以从2 对夫妇开始推导,如果是2 对夫妇,握手各不相同,那必然是 0 ,1, 2;A先生的太太为 1,0 和 2 为夫妇;为什么?因为 2 次是和非自己夫妇外的人都握手了,也就是其他夫妇至少为 1,0 自然就是自己的配偶;
如果是 3 对夫妇,0,1,2,3,4;0 和 4 为夫妇,1和 3 为夫妇;道理同上,4 次是和非自己夫妇外的都握手了,0 次就是自己的配偶;1 次就是跟 4 次的握手了,3 次就是 1 次的配偶,就是除了自己的配偶和 0 次,跟其他人都握手了。
为什么 1 次和 3 次一定是配偶呢?因为只有他满足 3 次握手的条件。他的配偶只跟 4 次的握手了,其他人没办法跟他握手,最大次数达不到3次。

考试做题

100 个人写 5道题,第 1 道题有 A 人做对,第二道题有 B 人做对,…求至少多少人做对 3 道及以上题目?考试做题

题解

这道题用逆向思维很快就解出来了,计算出总共的错题,至少错 3 道,把错题均摊到尽可能多的人身上。
均摊方式:

  • 将错题从大到小排序
  • 每次将最大的前3个分配给一人,然后重新排序
  • 重复上面步骤,直到最后找不出3个不为0的数,也就是变为X,0,0,0,0或者X,Y,0,0,0。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值