【练习】量化面试-脑筋急转弯部分

备战量化面试的一些简单脑筋急转弯题目

1. 过河问题

A、B、C、D四个人需要过河,过河的唯一办法是经过一座老桥,这座桥一次最多能容纳两个人。由于天黑,他们没有手电筒不能过桥,而且他们只有一个手电筒,所以每一对都只能以较慢的人的速度行走,并且他们需要尽快过河。A是最慢的,需要10分钟,B需要5分钟,C需要 2分钟,D需要1分钟。

他们至少需要多久才能全部过河?

解决方案:关键是要认识到,10分钟的人和5分钟的人要一起走,并且他们不能先过河,不然这两个速度慢的人其中一个还必须要再返回来。所以:

  1. C和D应该先过河(用时2分钟)
  2. 然后D返回(用时1分钟)
  3. 然后A和B穿过(用时10分钟)
  4. 然后C返回(用时2分钟)
  5. C和D再过河(用时2分钟)

总共需要17分钟。另一种方案,我们可以先让C返回,然后在第二轮让D返回,这也需要17分钟。

2. 生日问题

你和你的同事知道你的老板A的生日是在下面10天中的一天:

  • 3月4日,3月5日,3月8日
  • 6月4日,6月7日
  • 9月1日,9月5日
  • 12月1日,12月2日,12月8日

A只告诉你他生日的月份,只告诉同事C生日日期中的日。所以,你说:“我不知道他具体的生日,C也不知道。”听了之后,C回答:“我之前确实不知道,但现在知道了”。你笑了,并回答:“现在我也知道了”。看了上面10个生日日期,并听了你和C的对话,你的行政助理没有问任何问题就写下了A的生日。

请问: 助理写下的是哪一天?

公布答案:假设D是A的生日日期中的日,则D{1,2.4.5,7.8}。如果生日是在一个独一无二的日,C会立即知道,在可能的日期中,2和7是唯一的日期。考虑到你肯定C不知道A的生日,你必须推断C被告知的日期不是2日或7日,由此推断,月份肯定不是6月和12月(如果月份是6月,C被告知的日期是7日;如果月份是12月,C被告知我的日期是2日。)

现在C知道这个月必须是3月或9月,他立即知道了A的生日,这意味着这个日期在这2个月份列表中是唯一的,这意味着即A的生日不能是3月5日或9月5日。

结论:生日必须是3月4日、3月8日或9月1日。

在这三种可能性中,3月4日和3月8日是同一个月。所以如果你的月份是三月,你仍然不能算出生日是哪一天。既然你可以计算出A的生日,那么这一天肯定是9月1日,你的助理写下的就是九月一日。

3. 缺陷球

你有12个相同的球。其中一个球比其他球重或轻(你不知道是哪个)。仅仅用一个天平,只能看出哪一边的托盘更重,你如何通过3此测量确定哪一个球是有缺陷的?

4. 末尾的0

100的阶乘末尾有多少个0?

解决方案:这是一个简单的问题。我们知道2和5的每一对都会给出一个尾随零。如果我们对100中的所有元素进行素数分解,很明显,2的频率将远远超过5的频率。因此,5的频率决定了尾随零的数量。在数字1、2……99和100中,20个数字可以被5整除(5,10… …100)。在这20个数字中,4个可以被5二次整除(25,50,75,100)。所以5的总频率是24,即100的阶乘末尾有24个0。

5. 赛马问题

有25匹马,每匹都以不同于其它马的恒定速度奔跑。由于赛道只有5条,每场比赛最多可有5匹马。如果你需要找3匹跑得最快的马,需要多少场比赛才能找出它们?

解决方案:这个问题测试你的基本分析技能。为了找到3匹跑得最快的马,所有的马都需要测试。因此,第一步是将马分成5组(即1-5、6-10、11-15、16-20、21-25)。5场比赛后,我们将在每组中有一个顺序。我们假设数字的顺序就是最终的排名(例如,在6-10组中,6是最快的,10是最慢的。也就是说,各组中1,6, 11, 16,21是最快的)。

每组最后两匹马会被淘汰,我们还能推断出什么?在每组中,如果最快的马在25匹马中排名第5或第4,那么该组所有的马不能进入前3名,如果它排名第三,那么该组中的其他马都不可能进入前3名,如果它排名第二,那么该组中的另一匹马可能会进入前三名,如果排名第一,那么该组另外两匹马可能会进入前三名。

让我们来赛马1,6,11,16,21。

为了保持跟之前推理的一贯性,假设排名顺序是1,6,11,16和21。然后我们立即知道4-5,8-10,12-15,16-20和21-25被淘汰了。因为1是所有马中跑得最快的,所以1进来了。我们需要确定2、3、6、7和11中的哪两匹进入前3名,这只需要额外的一场比赛。

因此,我们总共需要7场比赛(3轮)来确定3匹跑得最快的马。

6. 守门人问题

你面对着两扇门,一扇门后是获得工作,另一扇门后是辞职。两扇门前各有一个守卫,一个守卫总是说谎,另一个守卫总是说真话。你只能问一个守卫一个是或否的问题,假设你想要得到这份工作,你会问什么问题?

解决方法:一个常见的答案是问一名守卫:“如果我问另一个守卫他是否在守着那份offer,他会如何回答?”然后选择得到否答案的门。因为两人必有一人撒谎,得到的答案绝对是谎言。

7. 信使问题

你需要通过信使服务与格林威治的同事沟通。你的文件是用挂锁箱寄出的。不幸的是,信使服务不安全,因此在交付过程中,未锁定盒子内的任何东西(包括你在盒子内放置的任何锁)都将丢失。高度安全的挂锁,你和你的同事每人都有一个,且都自己保管钥匙,怎么才能安全的将文件发送给同事?

解决思路:如果你有要传递的文档,很明显,你不能把它放在一个不上锁的盒子里。所以第一步是把它装在一个锁着的盒子里送到格林威治。由于你是拥有该锁钥匙的人,因此你的同事无法打开箱子获取文档。你需要在他拿到文件之前解除锁,这意味着在你的同事拿到文件之前,盒子应该被送回给你。

那他在寄回盒子之前能做什么?他可以在盒子上再加一把锁,一旦盒子还给你,你就可以卸下自己的锁,把盒子还给你的同事。他打开自己的锁,拿到了文件。

8. 无限序列

如果 $x$\^$x$\^$x$\^$…=2, x$\^$y=x·y$。那么 x 是多少?

解决方案:$x$\^$x$\^$x$\^$…=x(x$\^$x$\^$x$\^$)=x^2=2, x=\sqrt{2}$

9. 匿名工资计算

来自不同机构的八位宽客聚在一起喝酒,他们都有兴趣知道聚会这个群体的平均工资。然而,作为谨慎谦逊的个体,每个人都不愿意透露自己的工资。你能不能想出一个策略,让宽客在不知道其他人工资的情况下计算平均工资?

解决方案:这是一个轻松的问题,有不止一个答案。一种方法是让第一个宽客选择一个随机数,将它加到他/她的工资中,然后给第二个宽客。第二个宽客将他/她自己的工资添加到结果中,并将其给第三个宽客;第八个宽客将他/她自己的工资添加到结果中,并返回给第一个宽客。然后,第一个宽客将从总数中扣除“随机”数,并将“实际”总数除以8,得出平均工资。

10. 寻找伪币

有10个袋子,每个袋子里有100枚相同的硬币。除了一个袋子外,所有袋子里的硬币都是10克重。然而,伪币袋中的硬币重9或11克。你能在仅使用一次数字秤的情况下找到装有伪币的袋子吗?

解决方案:从第一袋中取出1枚硬币,从第二袋中取出2枚,从第三袋中取出3枚……从第十袋中取出10枚硬币。总的来说,有 = 55枚硬币。如果没有假币,它们的重量应该是550克。

我们假设第 $i$ 个袋子是伪造的袋子,将会有i个伪造的硬币,因此最终重量将为 $550±i$。由于每个袋子的i是不同的,我们可以使用 $550±i$ 来识别伪币袋子以及伪币是否比真实硬币轻或重。

11. 硬币堆

假设你在房间里被蒙着眼睛,被告知地板上有1000枚硬币。980枚硬币的反面朝上,另外20枚硬币的正面朝上。你能把硬币分成两堆,保证两堆硬币正面数量相等吗?假设你不能通过触摸来辨别硬币的侧面,你可以翻转任意数量的硬币。

解决方案:假设我们将1000个硬币分成两堆,其中一堆是n个硬币,另一堆是1000-n个硬币。如果第一堆硬币中有m个正面朝上,那么第二堆硬币中必须有20-m个正面朝上。我们还知道,第一堆硬币中有n-m个反面朝上。我们显然不能通过简单地调整n来保证m=10。然而,如果我们翻转第一堆硬币,所有的正面都会变成反面,所有的反面都会变成正面。因此,它将有n-m个正面和m个反面(对称)。

因此,首先我们需要使第一堆中的反面数量等于第二堆中的正面数量;换句话说,要使n-m=20-m,n=20使方程成立。如果我们随机抽取20枚硬币,把它们全部翻过来,翻过来的20枚硬币中的正面数应该与其他980枚硬币中的正面数相同。

12. 翻转玻璃杯

一位苏丹俘虏了50位智者。他现在有一个倒置的玻璃杯。每一分钟他都召唤一个智者,他可以选择要么把玻璃杯翻过来,要么什么也不做。智者会被随机召唤,可能会被召唤无数次。当有人被召唤时说所有的智者都已经被召唤至少一次,并且正确,所有的智者都可以获得自由。但如果他的说法是错误的,苏丹就会处死所有人。智者只能交流一次,然后被囚禁到单独的房间(每个房间一个)。请设计一个让智者自由的策略。

解决方案:为了使策略有效,一位智者(我们称他为发言人)将声明每个人都被召唤过。这告诉我们什么?

  1. 所有其他49位智者都是相同的。
  2. 这位发言人与其他49名男子不同。因此,这49位智者应该采取同样的行动,而发言人应该采取不同的行动。

下面是其中一种策略:49位智者中的每一位在第一次看到杯子底部朝下时都应该把杯子翻过来。如果杯子已经被翻过来,或者他自己已经把杯子翻了一次,他什么也不做。发言人每次看到玻璃倒置时,都应将玻璃底朝下翻转,如果玻璃已经底朝下,则他不应采取任何行动。在他完成49次翻转后,意味着其他49位智者都被召唤了,他可以宣布所有这些人都被召唤了。

13. 黑白格子

有一个8X8国际象棋棋盘,在对角上有两个小正方形被删除。有许多尺寸为1X2的砖块。你能把31块砖装进剩下的62个方格里吗?

如果你在黑板上放一块1X2的砖,它将始终覆盖一个黑色正方形和一个白色正方形。假设去掉了两个黑色角码,那么棋盘的其余部分最多可以容纳30块砖,因为我们只剩下30块黑色角码(每块砖需要一块黑色角码)。所以装31块砖是不可能的。要覆盖所有62个正方形而不重叠或过度延伸,我们必须有31块砖。然而,我们已经证明,31块砖无法填充剩下的62个正方形,因此你无法找到一种方法来填充所有62个正方形而不重叠或过度。

14. 黑白格子进阶版

你能把53块尺寸为1X1X4的砖块装进一个6X6X6的盒子里吗?

如果我们看这个3D问题中的总体积,53块砖的体积为212,比长方体的体积216小。然而,我们可以证明,用与棋盘问题类似的方法将所有的砖块装入盒子是不可能的。让我们想象一下,6x6盒子实际上是由小2x2x2立方体组成的。应该有27个小立方体。与国际象棋棋盘相似(但是是3D的),假设我们有黑色立方体和白色立方体交替出现——这确实需要一些3D可视化。我们有14个黑色立方体和13个白色立方体,或者13个黑色立方体和14个白色立方体。对于我们包装到盒子中的任何1x1x4砖块,其中一半(1x1x2)必须是黑色2x2x2立方体,另一半必须是白色2x2x2立方体。问题是每个2x2x2立方体只能由4块1x1x4砖使用。因此,对于13个立方体的颜色,无论是黑色还是白色,我们只能将其用于52个1x1x4立方体,无法放置第53块砖。因此,我们无法将53块尺寸为1x1x4的砖块装入6x6x6的盒子中。

15. 最后小球

一个包有20个蓝色的球和14个红色的球,每次你随机拿出两个球。(假设包中的每个球被拿走的概率相等)。你不能把这两个球放回去,相反,如果两个球颜色相同,你添加一个蓝色的球到袋子;如果它们有不同的颜色,你添加一个红色的球到袋子里。假设你有无限量的蓝色和红色球,如果你继续重复这个过程,袋子里最后一个球的颜色是什么?如果袋子里有20个蓝球和13个红球呢?

解决方案:一旦你理解了提示,这个问题应该很容易解决。让(B,R)表示包中蓝色球和红色球的数量,我们可以看看两个球出局后会发生什么。

  • 两个球都是蓝色的:(B,R)-(B-1,R)
  • 两个球都是红色的:(B,R)-(B+1,R-2)
  • 一个红色和一个蓝色:(B,R)-(B-1,R)

R要么保持不变,要么减少2,因此如果我们从14个红球开始,红球的数量永远不会变为奇数。我们也知道每次球的总数减少一个,直到只剩下一个球。结合我们掌握的信息,最后一个球一定是蓝色的。同样,当我们以奇数个红色球开始时,因为红色无法被消除,最后一个球必须是红色球。

16. 灯泡问题

房间里有一个灯泡,外面有四个开关。所有开关当前都处于关闭状态,只有一个开关控制灯泡。你可以任意打开或关闭开关,需要进入房间多少次才能确定哪个开关控制灯泡?

解决方案:打开开关1和2;继续解决一些其他的难题,或者做一些你喜欢的事情;关闭开关2,打开开关3;快速进入房间,触摸灯泡,观察灯是亮还是关。

  • 灯泡接通,热-开关1控制灯;
  • 灯泡关闭,热-开关2控制灯;
  • 灯泡接通,冷-开关3控制灯;
  • 灯泡关闭,冷-开关4控制灯;

17. 飞机占座

100名航空乘客排队等候登机,他们每人持有一张那次航班100个座位中的一个座位的机票。为了方便起见,假设第n位乘客有一张n号座位的票。喝醉后,第一个排队的人随机挑选一个座位(每个座位的可能性相同)。所有其他乘客都很清醒,除非已经有人坐,否则他们会坐到自己的座位上去;在这种情况下,他们将随机选择一个免费座位。你是100号乘客。你最终坐在座位上的概率是多少?

解决方案:如果醉酒的乘客碰巧乘坐1,那么所有乘客都会有正确的座位。如果他坐在100号,你就得不到座位了。他接受1或100的概率是相等的。否则,假设他坐第n个座位,其中n是一个介于2和99之间的数字。2到(n-1)之间的每个人都会有自己的座位。这意味着第n名乘客基本上变成了新的“醉汉”,坐在指定的座位上。如果他选择1,所有其他乘客都会有正确的座位。如果他选择100,你就得不到座位了。(他坐1号或100号座位的概率再次相等)否则他只会让另一名乘客成为坐在指定座位上的新“醉汉”,而每个新“醉汉”坐1号或100号座位的概率相等。因为在所有的跳跃点上,“醉汉”选择座位1或100的概率是相等的,根据对称性,你作为第1位乘客,坐在I00的概率是0.5。

18. 混合红酒

我们有一杯白葡萄酒和一杯红葡萄酒。两杯酒都有100毫升。我们从红葡萄酒中提取5毫升,放入白葡萄酒中,使混合物均匀。然后,我们从白葡萄酒中取出5毫升,放在红葡萄酒中。请问,白葡萄酒中的红葡萄酒多,还是红葡萄酒中的白葡萄酒多?

解决方法:这是一个非常古老的问题,但仍然经常出现。我们用更聪明的一种方法。假设白葡萄酒中有x 毫升红葡萄酒,红葡萄酒中有y毫升白葡萄酒。那么红葡萄酒杯中包括100-y毫升红葡萄酒,而白葡萄酒杯中的红葡萄酒为x毫升,所以:

19. 生日问题

一个班级需要多少人,才能使两个人生日相同的概率超过1/2?

解决方法:设一共 n 个人,使得有人生日相同和完全没有两人生日相同的概率都为 1/2。即

使得概率最小的 n 就是 23

20. 掉落时钟

一个老式的时钟从墙上掉下来,表盘摔成了三块。每块表盘碎片上的数字加起来相等。请你描述一下破碎表盘上的数字。

解决方法:表盘上的数字加起来总共是78,所以每个碎片上数字总和为26。通常,我们最初会尝试寻找满足问题约束条件的切片式碎片,比如披萨形切片。

如果在表盘上按拨号顺序寻找合为26的连续数字,你很快就会发现5-6-7-8相加等于26,11-12-1-2相加等于26,除此之外的其它组合形式都不太符合要求。

所以,披萨片形状不能完全满足题目的条件。因此,3块碎片依次是5-6-7-8,11-12-1-2,以及一块包括了10-9-3-4的长形碎片。

21. 生男生女

一座神秘的城市有10万对已婚夫妇,但没有孩子。每个家庭都希望“延续男性血统”,但他们不希望人口过多。因此,在第一个男孩出生之前,每个家庭每年可以生一个孩子。假设孩子出生时男性和女性的可能性相同。让p(t)为t年末男性儿童的百分比。这个百分比预计会随着时间的推移而变化吗?

解决方法:看起来很复杂的题目,最容易让人忽略极其简单的情况。如同在做数学难题时,没有抓住重点。无需计算即可看出,在每个阶段,预期出生的男婴和女婴数量相等。因此,男女儿童的比例预计将保持在50%左右。

以下是详解(t=0,只看预期结果):

  1. 第一年年底,这10万个家庭有5万个男孩和5万个女孩,男性儿童的比例为50%。
  2. 第二年年底,10万个家庭(那些没有儿子的家庭)中有一半又生了一个孩子。这就增加了25000名男孩和25000名女孩。现在有75000名男孩和75000名女孩,男性儿童的比例仍为50%。然后,还有25000个家庭没有儿子。他们又增加了12500名男孩和同等数量的女孩,以此类推。

22. 开灯泡

在一个长房间里有100个灯泡排成一排。每个灯泡都有自己的开关,当前处于关闭状态。这个房间有一个入口门和一个出口门。有100名股票经纪人在入口处排队。每个灯泡从1到100连续编号。每个股票经纪人从1到100连续编号。

  • 一号经纪人走进房间,打开每个灯泡,然后离开。
  • 二号经纪人走进房间,改变偶数灯泡开关状态(关闭灯泡2、4、6……)。
  • 三号经纪人走进房间,自第3个灯泡开始,翻转每数第3个灯泡开关状态(更改灯泡3、6、9…..的状态)。
  • 这将一直持续到100名经纪人都通过房间。

问:第100个人穿过房间后,有多少个灯泡被点亮,它们是哪些灯泡?

解决方法:在第100个人通过后,灯泡点亮的唯一方法是开关被翻转奇数次。灯泡编号K的开关只会被数字为K的因数的人打开。因此,在结束时点亮的唯一灯泡是那些具有奇数因数的数字的灯泡。

然而,数字的因素是成对的。例如,32具有因子(1,32)、(2,16)和(4,8)。这意味着32有偶数个因素,灯泡32在结束时不点亮。

乍一看,所有的数字都有偶数个因素。然而,如果两个因子(一对)相同,你会得到奇数个因子。例如,64将(8,8)作为一对。如果一对因子相同,那么原始数必须是“完美平方”,因此,只有因子为奇数的数是完美平方。

在1和100之间正好有10个完美的正方形,它们是1,4,9,16,25,36,49,64,81和100(即12,22,32,…102)。这是第100个人穿过房间后点亮的10个灯泡的数字。

23. 速算问题

13/16和9/16的小数点后面的数字是多少?

解决方法:无论谁都不可能记住所有问题的答案,但是我们可以掌握适当的技巧。加上或减去十六分之一,将要求的分数换算成四分之一或八分之一,本身是有规律可循的。

你首先应该记住1/8是0.1250,并由此推断1/16是0.0625。

分数13/16与12/16仅相差十六分之一,12/16正好是四分之三(0.75)。只需将0.0625添加到0.75,即可获得0.8125。

同样地,9/16只比1/2大十六分之一,因此是0.5625。

24. 苍蝇飞

一条单行道上有两名摩托车手。他们相距25英里。收到信号后,它们开始以恒定的速度向对方移动。第一个摩托车手以每小时20英里的速度行驶;第二辆以每小时30英里的速度行驶。

当信号熄灭时,第一名摩托车手头盔上的苍蝇受到惊吓,开始以40英里/小时的速度向第二名摩托车手飞去。当苍蝇飞到第二名摩托车手(现在正朝第一名摩托车手飞去)时,他立即改变航向,飞回第一名摩托车手身边。当苍蝇回到第一个骑摩托车的人身边时,他又改变了方向。苍蝇继续在两名摩托车手之间来回飞行,直到三者全部相遇。

相遇之前,苍蝇要走多少英里?

解决方法:苍蝇在两车相遇前一直飞,因此只需计算话费时间 25/(20+30)再乘苍蝇速度,得到20英里

Reference

AlphaMaker-应聘量化必备经典试题


【练习】量化面试-脑筋急转弯部分
http://achlier.github.io/2022/09/24/量化面试-脑筋急转弯部分/
Author
Hailey
Posted on
September 24, 2022
Licensed under