这道题启示我们,可以用几何的眼光看问题!
我们把密码组合放在一个三维直角坐标系中,密码的三个数位分别对应三个坐标轴,于是所有密码集合就变成了坐标系中一个10*10*10的立方点阵,每个三位数密码都表示成三维坐标有序数对。
假设正确密码为672,那根据题目要求,意味着所有在x=6或y=7或z=2这三个平面上的点按到以后就会发出滴的响声,因为这三个平面上的点至少有一位是正确的。
这时候,问题就演化成了,如何最快探测到这三个面。那么问题就简单多了,这不就是体对角线吗!
一个体对角线必过这三个垂直于坐标轴的平面,且速度最快,最多10个点就扫描完成,共输入10次。但还有一个问题需要注意,虽然探测到了三个面的位置,但还并不知道每个面分别垂直于哪一条轴,也就是不知道密码正确数字处在那一位。
这时候就要通过额外工作确认每个面对应的坐标轴。选取一个面和体对角线的交点(探测点),分别改变这一点其中的两个坐标,看是否听到滴声即可确定该面垂直于哪条坐标轴。此步至多输入2次。
第二个面就剩下两个坐标轴可选,改变其中一个坐标即可确认该面对应坐标轴。此步输入1次。最后一个面也随之确定了。
(如果有两个面对应坐标相同,即体对角线过两面交线,输入次数相同,只需看是哪两个面相交即可判断)
(如果体对角线恰好过三个面相交点,那都不用再试了,密码直接就是它了)
综上所述,最多一共需要输入10+2+1=13步即可得出正确密码。如果算上最后一步输入正确密码的话,就是14次。
前面有些回答也是从000,111,到999试起,其实原理与此相通。如果想另辟蹊径换一条体对角线,从090,181,272,……909这样试,其实也未尝不可。
按照这方法还可以类推四位密码,10+3+2+1=16,算上最后一步17……其实也没有差很多。
为了方便理解我还随手画了个图,结果画着画着把我自己都画晕了,随便看看就好了。。。其中蓝色的是三个面,大红点是三面交点即正确密码,红蓝结合虚线是探测路径体对角线。
这手画也太难了⑧
更新了另一个从几何看问题的回答,手画就是灵魂!
发觉三个问题,一是13步才能测准,所以开锁要算第14次。二是以为012、123地测比000、111能减步数,实际上对付恐怖份子有可能,数学上不能。三是本题减化即是ABC三个数字6种排列,怎么最少步测出实际排列,测试结果只有YN两种,最少得三步2*2*2=8种分型才能完成测试。
唯一突破可能在于前十步能否完成几种排除。
原回答:
第一波012,123,234…901,共10次
只听到一声响的就那个
两声响的比如123、567,加测127、523、163
三声响的比如123、567、678,加测178(不响测553,响为663,不响即是627),523(不响测268,响是168,不响即是177),628(响为528,不响即是573)
经希声提醒修改了测试。
为方便看,具象为数字了,不如其它答案精简
最高测13步
估算一个上界。思路是每一轮都寻求一条最短线段,将当前包含天使的多边形,按面积等分成两个新的子多边形。再假设天使的运气足够好,每次都瞬移到等分效率较低的子多边形。
直观看出,取平行于正三角形一条边的线段来等分其面积,等分效率最高。令此线段长度 ,三角形边长 ,则:
这样,初始正三角形被分成一个新的小正三角形和一个等腰梯形,易见等腰梯形的等分效率远高于新的小正三角形,于是根据假设,天使将瞬移到新的小正三角形当中。如此循环,至于无穷,天使将被锁定在初始正三角形的一个顶点。计算魔鬼走过的耗时路程:
记魔鬼速度 ,则捉住天使的时间:
这个题目如此离散,不借助于数值离散优化不易得到全局最优解,建议大家来改进这个上界吧。
按照 @yyx 说的圆弧线等分正三角形以及后续的扇形,上界可以改进为:
估算一个上界。思路是每一轮都寻求一条最短线段,将当前包含天使的多边形,按面积等分成两个新的子多边形。再假设天使的运气足够好,每次都瞬移到等分效率较低的子多边形。
直观看出,取平行于正三角形一条边的线段来等分其面积,等分效率最高。令此线段长度 ,三角形边长 ,则:
这样,初始正三角形被分成一个新的小正三角形和一个等腰梯形,易见等腰梯形的等分效率远高于新的小正三角形,于是根据假设,天使将瞬移到新的小正三角形当中。如此循环,至于无穷,天使将被锁定在初始正三角形的一个顶点。计算魔鬼走过的耗时路程:
记魔鬼速度 ,则捉住天使的时间:
这个题目如此离散,不借助于数值离散优化不易得到全局最优解,建议大家来改进这个上界吧。
按照 @yyx 说的圆弧线等分正三角形以及后续的扇形,上界可以改进为: