正文

數(shù)據(jù)壓縮——有益無害(6)

改變未來的九大算法 作者:(美)約翰·麥考密克


回到更短符號把戲。和本書中描述的許多本該是技術(shù)性的思想一樣,人類也一直在運(yùn)用更短符號把戲,用時甚至想都沒想過。更短符號把戲的基本思想是,如果你使用某樣?xùn)|西足夠多次,給它起個簡短縮寫是很值得的。所有人都知道“USA”是“United States of America”(美利堅合眾國)的縮寫——我們所有人每次在輸入或說出這個由3個字母組成的代碼“USA”,而非其代表的由24個字母組成的完整短語時都節(jié)省了很多力氣。你知道“The sky is blue in color”(天空很藍(lán))的縮寫嗎?這個短句恰好也由24個字母組成。當(dāng)然不知道!但為什么呢?“United States of America”和“The sky is blue in color”之間有什么區(qū)別?關(guān)鍵區(qū)別在于,其中一個短語的使用頻率要比另一個大得多,而通過縮寫一個經(jīng)常使用的短語而非一個極少使用的短語,我們可以節(jié)省大量力氣。

讓我們嘗試將這個想法應(yīng)用到上一頁的代碼系統(tǒng)中去。我們已經(jīng)知道,通過使用經(jīng)常用到的東西的縮寫,我們節(jié)省的力氣能達(dá)到最大。字母“e”和“t”在英語中使用得最頻繁,讓我們嘗試用更短的代碼來代替這兩個字母?,F(xiàn)在,“e”是31,“i”是46——每個字母都需要兩個數(shù)字代表。將兩個數(shù)字減成一個數(shù)字呢?假設(shè)現(xiàn)在“e”由8代表,“t”由9代表。這個主意太好了!記得我們之前是如何編碼短句“Meet your .ancé there”(去那見你的未婚夫)的吧,當(dāng)時一共用了46個數(shù)字?,F(xiàn)在我們可以只使用40個數(shù)字:

M e e t y o u r f i a n c é t h e r e .

138 8 9 005141474400323527402982009 348 448 66

不幸的是,這一計劃有個致命缺陷。計算機(jī)并不存儲單個字母間的空格。因此編碼不會像“13 8 8 9 00 51 . . . 44 8 66”,而是和“138890051. . . 44866”一樣。你發(fā)現(xiàn)問題了沒有?集中看前5個數(shù)字,也就是13889。注意代碼13代表“M”,8代表“e”,9代表“t”,因此數(shù)字13889的解碼方式之一是將其拆成13-8-8-9,得到單詞“Meet”。但88代表重讀符號“ú”,因此數(shù)字13889也可能拆分為13-88-9,即“Mút”。事實上,情況還可以更糟,因為89代表另一個略為不同的重讀符號“ù”,因此13889的另一種可能拆分是13-8-89,代表“Meù”。根本沒辦法分辨這三種可能的翻譯中哪種正確。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號