幾天前發了乙個部落格,包子演算法,討論很熱烈,今天我來說說我的看法
首先,我們從問題的特點分析一下
1)包子製作的工藝上,菜包子和肉包子有不同,肉包子蒸的時間要更長,且在蒸的過程中一般不會打斷,換包子這種情況,代價太大。
2)從購買者的角度上看,購買者的需求各異,搭配購買的概率比較大,只賣一種包子的雖然有,但不多。
3)包子的形態上看,為了便於search,包子上一般都會有特殊的記號,search的成本比較低。
4)蒸籠的重量上看,一般都比較大,至少不是小籠,乙個能裝30-40個的樣子,掀一次蓋子成本不低。
5)服務員一般會聘用力量不太大的女性,吃苦耐勞,有耐心,待遇要求還低
6)服務的工作面有限,不能放下很多蒸籠。
最後,至少東門外汽車站的這個店的女店員是將肉類包子放在乙個蒸籠的佇列a,每個蒸籠內搭配放在豬肉包和牛肉包,當整個蒸籠的包子賣完了,下乙個同類蒸籠推上來。菜包子和肉包子類似,買個蒸籠裡都搭配的放了各種包子,每種包子放在一起,例如韭菜的放8個,緊湊地放在一起,茴香的放6個,也是緊湊的放在一起,每個蒸籠都這樣放置。工作面上一般是乙個肉類蒸籠和若干菜類蒸籠。
這樣的好處是,使用者的需求只有菜類或肉類的情況下,只需要掀一次蓋子,如果有多種需求,大部分其概況下,只需要掀兩次蓋子。
在蒸籠中search相應的包子,對人類的智慧型來說實在太簡單了。
從這個例子我們可以看出一些門道
(1)估計不同操作的成本,作出最優的選擇
(2)類似的東西放在一起,方便search,方便拿。
僅供參考,並感謝各位積極思考和回帖的朋友們。
以前出過一些類似的題目,有興趣的朋友可以看看,參見:
KMP演算法之我見
kmp演算法 時間複雜度o m n 最核心的是求next陣列,然後再根據next陣列來進行模式匹配。因此分為兩部分 next陣列記錄的是模式串的特徵,即最長相同前字尾 考慮如下模式串p abcdabc 它的字首有 a,ab,abc,abcd,abcda,abcdab 它的字尾有 c,bc,abc,d...
BPE演算法之我見
bpe演算法本質是基於合併的,而不是基於切分的,理解這一點很重要。在bpe整個迭代的過程中,是基於 詞表 的,但是最後要生成的是 子詞表 拿來用的也是 子詞表 拿 裡的例子來說,最開始詞表長這樣 l o w 5 l o w e r 2 w i d e s t 6 n e w e s t 3 如果你不...
KMP演算法之我見
預備談談下面這些,可能有補充 kmp演算法的用途 kmp演算法之前的暴力 kmp演算法預備知識與概念 kmp演算法模板 kmp演算法的習題。主要用於模式匹配 字串匹配 給定乙個長的字串 target string 和乙個短的字串 pattern string 要求判斷pattern string是否...