2012-02-25 249 views
1

嗨,大家好,我想發送儘可能短的字符串/值。 如果我有以下最短編碼,十六進制

1)l23k43i221j44h55uui6n433bb4 
2)124987359824369785493584379 
3)kla^askdjaslkd3AS423$#ksala 

什麼是縮短串的術語, 編碼?加密?

與此同時,什麼是縮短文本字符串,考慮到我只有短信255極限

+3

您正在尋找的短語可能是「無損壓縮」。但是這是不可能的,除非你的輸入數據有一些已知的結構。輸入數據的結構是什麼? – 2012-02-25 01:26:27

+1

你在尋找一種壓縮算法,我相信哈夫曼是最好的語言,但你的文本看起來相當隨機,所以你可能不會得到非常好的壓縮 – 2012-02-25 01:27:37

+1

見https://github.com/antirez/smaz – Jason 2012-02-25 01:31:57

回答

2

你要找的期限爲compression的最佳方法。基本上,您可以將輸入數據轉換爲更短或長度相同的輸出數據。這通常適用於數據中的模式和重複(如abcabcabc)或有限字母表(如第二個示例中)。

13

所以我第一天在監獄裏被帶到食堂吃午飯,我和一羣在那裏呆了多年的老人坐在一起。他們中的一個站起來大喊「51!」坐下來,大家都笑了起來。幾分鐘後,另一名犯人站起來大喊「96!」再次,每個人都笑了起來。

我問旁邊的老傢伙發生了什麼事,他解釋說,他們聽過很多次對方的笑話,他們剛剛列出了他們的名單,給他們編號,然後大聲喊出號碼以保存實際上講笑話的時間。

所以我站起來大叫「23!」

沉默。

我坐下了。 「那麼,有些人只是不擅長講笑話,我想」老人說。


如果你事先知道你要發送的字符串知道,你可以提前分發他們的名單,然後只發送字符串的數量。

+3

真實的故事兄弟。 – 2012-02-25 03:18:20