今天听吴军老师讲“粗调和精调,从一道Google的面试题谈起”,粗求快,精求好,粗细结合,不只可以解一道面试题,工作生活中诸多思维都可归于此。
这道题目如下:
给你两个一模一样的玻璃球。现在已知这个恰巧摔碎的高度范围在1层楼到100层楼之间。如何用最少的试验次数,用这两个玻璃球测试出玻璃球恰好摔碎的楼高。
我刚开始审题不严,想着用二分法求解,忽略了只有两个玻璃球。二分法固然迭代次数少,但可能每次都会摔碎玻璃球。在没有先验知识的情况下,最好的办法是粗调与精调结合。拿一个球做精调,从10层开始,10层为步长尝试,直到被摔破。假设在第40层摔破,那就将可能的楼层锁定在31-40之间。然后再用另一个球从31层开始逐层尝试,直到找出精确的楼层。当然,因为这个题目有次数和精度两个优化目标,根据不同的权重,步长需要适当调整。
这个思维用途远不止于此。比如软件开发时的自顶向下设计,就是这一思维的具体化变速,比如产生研制中的快速原型迭代与调试优化,比如一个优秀的最优化算法,通常就要求具备全局寻优与迭代精度,甚至于抓住主要矛盾等。
这种思维也可以用来克服完美主义者与拖延症。拖延症,迟迟拖着不肯动手,其中一个很大的担心就是怕做不好。完美主义者,经常陷入一个局部的耗时迭代优化,而无暇顾及全局。先花少的时间与精力,做出一个粗糙的版本或框架出来。虽然丑,但能用,这就有利于克服拖延心理。然后再此基础上,发挥完美主义倾向,逐步调优。
在资源与时间有限的情况下,粗细结合,是有可能把事情做得又快又好的,不妨试试。