正面墙上还有十分钟倒计时。
余途微微一笑,这个题,不就是自己之前面试程序员时候,最常见的算法题吗?
不过自己当初做的,是十二个球,要求找到最优算法。
十二个球的情况下,解法有两个,但是最优解只有一个。
在最优解中,有机会仅靠两次就可以找出质量不一样的球。
十三个球,余途第一次做,但是按照最优解的方式,衍生一次就可以了。
余途微微一笑,开始简单对十三个球分组。
先对十三个球编号,然后①-④ A组、⑤-⑧ B组,⑨-?C组;
然后计算理论过程:
1:先用 A组和 B组在天平上称重,如果重量一致,问题球在C组,则转第2.1步;如果不一致,问题球在A组和B组,则转第3.1步,并记录A组和B组谁重谁轻;
2.1:问题球在C组;在C组中取球⑨-?,三颗球,然后取三个正常球,如①-③,称重;天平不平,问题球在⑨-?,转2.2.1;若天平平,则问题球在?-?,转2.3.1;
2.2.1:问题球在⑨-?,且知道问题球是重还是轻(⑨-?比①-③重,则问题球比正常球重,反之,则问题球比正常球轻),假设是重;取⑨和⑩放在天平两端,观察平不平;
2.2.3:如果平,则问题球是?;
2.2.4:如果不平,则⑨和⑩中,重的球是问题球(如之前⑨-⑩比①-③轻,则轻的球是问题球)。
2.3.1:问题球在?和?,取?和①放在天平两端。若平,则问题球是?;不平,问题球是?;
3.1:第一步不一致,问题球在A组和B组,且假设之前称重结果为①②③④轻⑤⑥⑦⑧重:取①②③⑤放在天平一端,再取④⑨⑩?放在天平的另外一端,观察平衡情况;
3.2.1不一致:如果①②③⑤重,④⑨⑩?轻,则问题球在④或者⑤,只需要再将④或者⑤任意一个与一个正常球称重一次,即可找到问题球;
如果①②③⑤轻,④⑨⑩?重,问题球在①②③,且问题球比正常球轻;重复2.2.1步骤,称重一次即可找到问题球;
3.3.1,一致,则问题球在⑥⑦⑧,且问题球比正常球重,重复2.2.1步骤,称重一次即可找到问题球。
余途简单的将推演过程写在稿纸上,点了点头,严谨,没有缺陷。
随后开始动手,先按序号排列好,开始称重……
第一次称重平的,问题球在后面五个球中……
完全没有问题,三次称重,问题球是?!
天平使用了三次,然后便消失不见,余途将?球放入红框中,便听到一个机械声音:答题成功!
随后,桌面上又出现了第二道题的内容。
余途看了看时间,过去了三分半钟。
……
余途看不到其他人的情况,然而台下的人看得清清楚楚,余途顺利的答对第一题。
然而司空暗夜还要快一点点,他用了一个错误的方法,意外的得到了一个正确的结果。
不过另外一人就没有这么好运了,豪哥使用了三次天平,也没有找到球。
随后随便拿了个⑧扔进红框中,错误!
再之后,空间没有给他第二次重试的机会,桌面上球消失了,也没有了第二题。
简单来说,他的答题数量,是0!
————
余途看向桌面的第二道题,也TM很有意思!
“桌上有一根绳子,需要分为七次取走,每取一次,需要保证剩下的绳子总长度都只减少七分之一。剪刀只可以使用两次,拿走的绳子可以再放回来。”
桌面上有一把剪刀、一个木框、一根绳子,绳子上还贴心的按照七分之一,标好了六个刻度。
这道题就更简单了,余途只是简单想了想,便开始动手。
不过就是7以内的加减法!
在绳子剪断成1个单位长度、2个单位长度、4个单位长度的三段绳子。
第一次拿走1,剩下6/7;
第二次拿走2,放回1,剩下5/7;