幾天前發了一個部落格,包子演算法,討論很熱烈,今天我來說說我的看法
http://blog.csdn.net/pennyliang/archive/2010/10/12/5935401.aspx
首先,我們從問題的特點分析一下
1)包子製作的工藝上,菜包子和肉包子有不同,肉包子蒸的時間要更長,且在蒸的過程中一般不會打斷,換包子這種情況,代價太大。
2)從購買者的角度上看,購買者的需求各異,搭配購買的機率比較大,只賣一種包子的雖然有,但不多。
3)包子的形態上看,為了便於search,包子上一般都會有特殊的記號,search的成本比較低。
4)蒸籠的重量上看,一般都比較大,至少不是小籠,一個能裝30-40個的樣子,掀一次蓋子成本不低。
5)服務員一般會聘用力量不太大的女性,吃苦耐勞,有耐心,待遇要求還低
6)服務的工作面有限,不能放下很多蒸籠。
最後,至少東門外汽車站的這個店的女店員是將肉類包子放在一個蒸籠的隊列A,每個蒸籠內搭配放在豬肉包和牛肉包,當整個蒸籠的包子賣完了,下一個同類蒸籠推上來。菜包子和肉包子類似,買個蒸籠裡都搭配的放了各種包子,每種包子放在一起,例如韭菜的放8個,緊湊地放在一起,茴香的放6個,也是緊湊的放在一起,每個蒸籠都這樣放置。工作面上一般是一個肉類蒸籠和若干菜類蒸籠。
這樣的好處是,使用者的需求只有菜類或肉類的情況下,只需要掀一次蓋子,如果有多種需求,大部分其概況下,只需要掀兩次蓋子。
在蒸籠中search相應的包子,對人類的智慧來說實在太簡單了。
從這個例子我們可以看出一些門道
(1)估計不同操作的成本,作出最優的選擇
(2)類似的東西放在一起,方便search,方便拿。
僅供參考,並感謝各位積極思考和回帖的朋友們。
以前出過一些類似的題目,有興趣的朋友可以看看,參見:
http://blog.csdn.net/pennyliang/archive/2010/05/31/5636595.aspx
http://blog.csdn.net/pennyliang/archive/2010/05/21/5612991.aspx
http://blog.csdn.net/pennyliang/archive/2010/05/13/5586942.aspx
http://blog.csdn.net/pennyliang/archive/2010/06/10/5660958.aspx