
今天聽吳軍老師講“粗調(diào)和精調(diào),從一道Google的面試題談起”,粗求快,精求好,粗細(xì)結(jié)合,不只可以解一道面試題,工作生活中諸多思維都可歸于此。
這道題目如下:
給你兩個(gè)一模一樣的玻璃球?,F(xiàn)在已知這個(gè)恰巧摔碎的高度范圍在1層樓到100層樓之間。如何用最少的試驗(yàn)次數(shù),用這兩個(gè)玻璃球測(cè)試出玻璃球恰好摔碎的樓高。
我剛開始審題不嚴(yán),想著用二分法求解,忽略了只有兩個(gè)玻璃球。二分法固然迭代次數(shù)少,但可能每次都會(huì)摔碎玻璃球。在沒有先驗(yàn)知識(shí)的情況下,最好的辦法是粗調(diào)與精調(diào)結(jié)合。拿一個(gè)球做精調(diào),從10層開始,10層為步長(zhǎng)嘗試,直到被摔破。假設(shè)在第40層摔破,那就將可能的樓層鎖定在31-40之間。然后再用另一個(gè)球從31層開始逐層嘗試,直到找出精確的樓層。當(dāng)然,因?yàn)檫@個(gè)題目有次數(shù)和精度兩個(gè)優(yōu)化目標(biāo),根據(jù)不同的權(quán)重,步長(zhǎng)需要適當(dāng)調(diào)整。
這個(gè)思維用途遠(yuǎn)不止于此。比如軟件開發(fā)時(shí)的自頂向下設(shè)計(jì),就是這一思維的具體化變速,比如產(chǎn)生研制中的快速原型迭代與調(diào)試優(yōu)化,比如一個(gè)優(yōu)秀的最優(yōu)化算法,通常就要求具備全局尋優(yōu)與迭代精度,甚至于抓住主要矛盾等。
這種思維也可以用來克服完美主義者與拖延癥。拖延癥,遲遲拖著不肯動(dòng)手,其中一個(gè)很大的擔(dān)心就是怕做不好。完美主義者,經(jīng)常陷入一個(gè)局部的耗時(shí)迭代優(yōu)化,而無暇顧及全局。先花少的時(shí)間與精力,做出一個(gè)粗糙的版本或框架出來。雖然丑,但能用,這就有利于克服拖延心理。然后再此基礎(chǔ)上,發(fā)揮完美主義傾向,逐步調(diào)優(yōu)。
在資源與時(shí)間有限的情況下,粗細(xì)結(jié)合,是有可能把事情做得又快又好的,不妨試試。