那么,该用什么方法来进行这个步骤的推理呢?
这个时候,相信屏幕前大部分小可爱们的第一反应都是二分法。
确实,在所有方法中,二分法解决问题的步骤期望非常不错,看似是个好办法。
然而,在这个游戏规则的限制下,二分法却是碰都不能去碰的陷阱!
就拿林朔目前状态来说,他用掉了两条命,只剩下三条命,目前10~99这个区间内的所有东西对他来说都是未知的存在。
那么,假设答案范围在32~33这两个危险指数之间,由于他起初不知道这个答案,若是贸然采用二分法,将会出现什么情况?
首先,将这个数字从中间截断,也就是从54开始二分。
然后,他死了,还剩下两条命。
那么,接下来呢?
继续二分,大概就是从32开始。
然后,又死了,只剩下一条命。
这个时候,由于机会只剩最后一次,他就不得不从11开始,一步一步往后挪,用这种最原始的蠢办法来确认答案。
这样一来,时间就成了大麻烦。
通过前两个步骤,剩余的时间大概只剩下8分钟,也就意味着在这么点儿时间里平均每分钟需要开2~3扇门。然而,光是开门这个动作就需要花费大概20s才能完成,这还不算中途奔波的时间、不算连续开门导致的肌肉疲劳。
这样一来,最终几乎不可能在规定时间内通关。
那么,换一种更加保险的方式。不使用二分法,而是采取逐级上跳的办法,先一步确认粗略范围,然后再用一条命来进行细致推理。
这样可以吗?
我们来看看。
比如:首先,选择危险指数为20的房间作为目标,如果没死,就选择危险指数为30的房间作为目标…以此类推。
假如在选择危险指数为50的房间作为目标后死去,那么接下来就只要从41一个个往上挨个实验,最多到49,即可得到答案。
表面来看,这似乎是一个不错的办法。虽然它不能像二分法那样快速排除大量错误答案,但却稳扎稳打、一步一个脚印,比较踏实。
可是,真的是这样吗?
此处,需要考虑一种极端情况,也就是答案为99~100。
假设是这样,就意味着玩家需要一直往上推进:20,30,40,50,60,70,80,90,一共8次。
直到这个时候,才意识到答案在90~100之间。
在这个游戏中,房间危险指数逐级增高、呈龙摆尾式排列,意味着玩家中途需要花费大量时间赶路——从一头跑到另一头,对时间和体力都是损耗。
并且,后续还要逐级向上:91,92,93,94,95,96,97,98,99,一共9次。
直到这个时候,才意识到原来答案是99~100。
也就是说,如果采用这个方式,最多需要尝试9+8=17次,才能得到确切答案。
并且,这17次中的8次还需要大量奔波,这将导致时间变得异常紧张。
毕竟完成不了挑战就得死,林朔当然不可能赌正确答案就在11~20之间,他必须要考虑到最坏情况,这是对自己的生命负责。
好了!这个时候,相信屏幕前的大聪明、大漂亮们都开窍了,想到了一种更巧妙的办法来完成游戏——
将第一个二分法和第二个等差递增法结合起来,就可以更加高效地得到正确答案!