彩色螞蟻
程序員,喜歡鉆研有趣的東西,公眾號:“ 望月的螞蟻”,關于:樂高,桌游,攝影,旅行等有趣的東東
2017-08-17
玩樂高最痛苦的事情,不是拼裝,而是拆卸。而比拆卸更痛苦的,是零件的收納和分類整理。。。
?
?
比如,在樂高街景,10232大劇院的套裝里,櫥窗里今日電影的海報就有那么一張:Forever Sorting, 看起來是言情片哈。btw. 另外兩部電影,你看出現(xiàn)實題材的來源了么 ;)
?
所以,這一篇文章,我來討論一下樂高零件的收納問題,樂高是用來玩的,所以,談收納,收起來并不是目的,拿出來才是重點。基于應用場景的不同,其實并沒有單一的最佳的收納方案,只有在那個場景下,相對適合的方案。
?
論收納的重要性
?
這一篇文章,其實已經(jīng)擱置了很長時間了,遲遲沒寫,是因為預計會很枯燥,更可怕的是,我居然想先理性的證明一下收納的重要性。。。只想看結(jié)論的同學,可以直接跳過這一節(jié)了。
?
下面,讓我簡單借助算法,來科學的論證一下收納的重要性 :-)
?
先讓我們假設一個套裝有一千個零件,那么你搭建過程中花在找零件身上的代價有多高呢?
?
讓我們簡單計算一下,如果你的零件完全不做整理,那么,你找到一個零件平均需要檢索五百個零件,而這個過程,你要重復一千遍,所以你需要檢索的量級約為五十萬次。
?
為了加快檢索速度,最常見的手段,當然就是對零件進行預分類。如果你是個合格的程序員,那么你應該知道,這就是所謂的Hash,理論上,Hash算法無論是分類還是檢索,就單個零件來看,代價都是常量 O(1),所以同樣一千個零件,分類加檢索,總的代價大概是兩千次。
?
當然,上面的計算是極度簡化了的,實際上第一種方法中,因為零件會有重復,零件總量也會隨著搭建過程不斷減少等,代價會遠小于此。第二種方法中,檢索的代價也不完全是常量1,因為現(xiàn)實中,如果你背不住零件放在哪個容器里,你還是要挨個檢索容器的。
?
但無論如何,分類零件的收益是顯而易見的,可是問題來了,應該把零件分類到多少個容器中呢?
?
?
在Hash算法中,為了減少Hash碰撞(不同零件放在同一個容器里),提高檢索效率,你最好是擁有無限的容器,但現(xiàn)實生活中,你在家里擁有的空間大小是有限的,即使你是住別墅的土豪,錢和空間都不是問題,無限的容器方案對你的體力和記憶力也是個嚴峻的考驗。所以,如何選擇具體的分類和收納方案,還是值得思考的。
聲明
本網(wǎng)注明
來源:“中外玩具網(wǎng)”的作品,文章版權(quán)均屬于中外玩具網(wǎng)(廣州力眾網(wǎng)絡科技有限公司),未經(jīng)授權(quán)不得轉(zhuǎn)載、摘編或利用其他方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應在授權(quán)范圍內(nèi)使用,并注明“來源:中外玩具網(wǎng)”及相應作者。違反上述聲明者,本網(wǎng)將追究其相關法律責任。部分圖片來源網(wǎng)絡,版權(quán)歸原作者所有,如有侵權(quán),請與本網(wǎng)聯(lián)系刪除。
本網(wǎng)注明“來源:XXX(非中外玩具網(wǎng))”的作品,均轉(zhuǎn)載自其他媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責。
如本網(wǎng)刊載作品有內(nèi)容、圖片、版權(quán)或其他問題,請發(fā)送郵件至2355507009@QQ.COM,以便本網(wǎng)盡快處理。