2025.10.信友队.智灵班选拔面试题目题解
T1
题目描述
现在有25匹马赛跑,场地中有5个跑道(即一场比赛最多有5匹马参赛),赛马时你不能掐表,只能看到马的先后顺序,问至少比赛多少场能知道跑得最快的3匹马
错误思路1
很多人的第一反应都是6次
把25匹马分成5组,用五场比赛选出最快的5匹马,随后再来一场比赛,选出前三名(即淘汰赛制)
但是这样子会有一个漏洞————本来弱者应该被淘汰,但是如果傻人有傻福,弱者有逆天的匹配机制,匹配到的初赛对少也是弱者!
而另一个组却全是精英,这样弱者晋级,精英却被淘汰,这合理吗?
错误思路2
既然不能淘汰赛,那么是否能按这个思路:
- 依然是分出5个小组,进行淘汰,只不过淘汰每组后两名(因为他俩绝对不能进前三,前面已经有3匹马了)
- 循环,直到选出最强的3匹马,那么出去最后的3匹马,总共要淘汰22匹马,每场淘汰两匹,所以一共需要11场
正解
其实我们都想错了,我们可以在错误思路1上改进
我们把一开始的五组分为A、B、C、D、E
\(A_x\) 表示A组跑的第 \(x\) 快的,其他组同理
所以第六场参赛人员就是 \(A_1,B_1,C_1,D_1,E_1\)
假设第六场比赛结果为 \(A_1>B_1>C_1>D_1>E_1\)
那么就知道:
- \(A_1\) 肯定是所有马中跑的最快的了
- \(B_1\) 可能是所有马中跑的第2快 (仅次于 \(A_1\))
- \(C_1\) 可能是所有马中跑的第3快 (仅次于 \(A_1,B_1\))
另外:
- \(A_2\) 可能是第二 (仅次于 \(A_1\))
- \(A_3\) 可能是第三 (仅次于 \(A_1,A_2\))
- \(B_2\) 可能是第三 (仅次于 \(A_1,B_1\))
所以,我们让 \(A_2,A_3,B_1,B_2,C_1\) 比一场,选出前两名,再加上 \(A_1\) 正好是前三
T2
题目描述
当x是好数字时,当且仅当x能表示为两个数的平方差,如16=55-33=44-00,问1到102有多少个好数字
解题思路
\(n=a^2-b^2\)
我们可以发现,\(n\) 等于两个完全平方数的差
那么我们就可以把一些完全平方数列出来找规律(注:这里和平方差公式没有任何关系,是一个误导)
\(0,1,4,9,16,25,36,49,64……\)
我们从加法规律入手:
\(+1,+3,+5,+7,+9,+11,+13,+15……\)
这些加数是一个以1为首项,公差为2的等差数列
所以,这个等差数列的任何一个字串和就是一个好数字
我们考虑字串和的规律:
- 字串长度为奇数,则和为奇数
- 假如字串长度为1,那么任何奇数都是好数字
- 结论1,所有正奇数都是好数字
- 如果字串长度为偶数,那么和就是4的倍数
- 结论2,4的倍数是好数字
所以我们进行计算,先把1~102中的奇数算出来,一共有 \(102\div 2=51\) 个
接着把4的倍数算出来,$ \left \lfloor 102\div 4 \right \rfloor =25 $ 个
一共就有 \(25+51=76\) 个
最终答案:76个
T3
题目描述
我们有1000瓶酒,其中一瓶含有毒药(无法通过外观区分)。为了找出哪一瓶是有毒的,可以使用小白鼠进行测试。已知毒药的发作时间是1小时后。现在需要在1小时内找出有毒的那瓶酒,问至少需要多少只小白鼠?
解题思路
这是一道经典到不能再经典的二进制运用的题目了,直接讲正解
首先把酒杯编号0到999,再把编号转成二进制形式,1111100111是999的二进制形式,共10位,所以其他不足十位的编号要补高位0直到10位
如0的二进制是0000000000,1的二进制是0000000001,以此类推
接着,对于每一位,让一只小白鼠把编号这一位是0的酒杯里的酒都倒出一点点,喝下
如果这只小白鼠亖了,那么有毒酒杯得编号这一位就是0,否则毒酒编号这一位是1
以此类推,10个数位要10只小老鼠,所以我们就可以根据每一只小老鼠的生亖判断毒酒杯编号
最终答案:要10只小老鼠