「25选有序3」思考过程及启发

先抛出一个题目:

题目:5条跑道,25个人赛跑,假设每人每次跑步速度恒定,无计时器。问,最少比几次选出最快的3个人。

======

据统计每种解决方案的

算法1:50%人:懒蛋

算法2:30%:正常人/理科生小朋友

算法3:17%:耍小聪明人士

算法4:3%人:精英


想好你的解决方案了吗?建议先自己想一下再看题主的思考过程哦~~



算法1:选第一选第二选第三法

S1:分5组,排序;5次

S2:选定一组,第3名与其他组第1名逐一对比,快则换,慢则整组替换...


总结:从第二步(S2)开始,局限在当前分组中,像是在搞一个公式的推理过程,而不是要一个目标的结果。


算法2:常规 To Do解法:共11次

回来后抛弃提示、重新从题目出发,自己的算法:每次从当前人数中选择每组前3,共11次。


总结:与算法1对比:算法1第二步:第一步后,被局限在分组内;算法2第二步:重新在当前数中执行目标「选出前3」


算法3:尝试每步重新思考:共10次

S1:分5组,排序;5次

S2:每组第1,排序;1次

S3:第1那组,剩余2个人,分别与其他组3人选出前2名;4次


总结:算法3比算法2在第二步时,多思考了一点:这时可以确定第一,那么就可以将排除第一的当前组剩余2名与其他组进行5人一组,选出2、3了;那么问题来了,这时又进入了To do,所以可能还能思考出接下来的解决方案。


算法4:最优解:7次

S1:分5组,排序;5次

S2:每组第1,排序;1次

S3:先不要执行To do,继续排除,D1、E1排除,问题变成了:从A2、A3、B1、B2、B3、C1、C2、C3中选前3,已知B1>C1,所以C2、C3排除,B1>B2,所以B3排除,剩余,A2、A3、B1、B2、C1 ,排序;1次。


每次带着策略,从要得出的结果出发重新思考。


作为产品狗的题主对自己思考过程的启发:

第一步都是分5组选出每组前三,第一步相同,因为第一步目标非常清晰,从第二步开始出现不同解题方式,第一种方法开始需要不断替换,容易凌乱;算法2选出每组前3后,又从目标「选出前3」出发,重新分组,这时候过程还是非常清晰的,看起来像是一直按照这个思路To Do即可;再算法2的基础上从出现To Do开始重新思考,得到算法3...,当算法3遇到To Do开始,出现算法4,从第二步开始,不仅要「选出前3」 ,还要重新思考这个过程是否存在无效参与,每步均重新思考,得出最优解。

知乎了一下,相同题目很多人给出了最优解,虽然回答者本身就是少数人,但提供的思路却很有价值。我想表达的是,可能在工作与生活中很难每件事情都做到最完美的解决方案,当有问题困扰或是过于一帆风顺的时候可能是该思考或者重新尝试最优解的过程了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容