當然是可以的,下面是理由。
對於某一種壓縮演算法來說,不是所有的資料都是可以壓縮的,你把一個檔案用某一種壓縮演算法壓縮過一次之後,把壓縮好的資料再次作為這個壓縮演算法的輸入,輸出之後,這段資料的壓縮率為0,因為這段資料已經不可能再被這個演算法壓縮了。也就是說,壓縮演算法使用場景不是無窮的,每一種壓縮演算法都只能用在特定的場合,基於這個前提我們來設計一種應用範圍很窄的壓縮演算法。
假設一種文件,裡面放的全是重複的視覺化字元,並且這些字元會頻繁的重複,而且重複的次數不超過256次,類似下面的內容: "QQAAAAWWWWrrrtttttttVVVVuuuOOOPP",基於這樣的內容我們可以設計一個壓縮演算法,壓縮出來的內容是‘Q’2‘A’4‘W’4‘r’3‘t’7‘V’4‘u’3‘O’3‘P’2,想必大家都能看懂,這個壓縮演算法壓縮出來的結果以2個位元組為單位,第一個位元組表示的是重複的字元,第二個位元組放的是重複的次數。
先解釋有些答主所說的資訊理論的問題。在上面的文字中,那兩句加黑的話,“裡面放的全是重複的視覺化字元,並且這些字元會頻繁的重複,而且重複的次數不超過256次”,“以2個位元組為單位,第一個位元組表示的是重複的字元,第二個位元組放的是重複的次數。”這兩句話本身包含了這種文件的特點,以及壓縮演算法的資料結構和規則,而這些特點、資料結構和規則本身包含了很多很多資訊,在使用同一種壓縮和解壓縮演算法的時候,這些資訊都是公開的,我們用這些公開的資訊去解壓縮那些已經壓縮過的資訊,資訊本身是沒有減少的。只是因為我們用公開的資訊去替代了一部分未知的資訊。而所有的壓縮演算法都是這個道理,不管你用無理數,還是其他的壓縮演算法,本質並沒有發生變化。
回到題主的問題上來,到底能不能用無理數來作為壓縮的“公開資訊”呢,答案肯定是可以的,不過難點在於,你得維護一個無理數表,這個無理數表裡存放的無理數,有能力應對大多數的情況,舉個例子,假設一段資料是0100101110011010101000010100101110101010001010101110101010100101010101101010101010101010100010101010101010000000001111100111101111101110111110,那麼你的無理數表裡有沒有能夠有效並且快速的找到與這段資料相符的資料,如果有的話,那麼只需要給出這個無理數在表裡的索引,以及這段資料在這個無理數里的索引(就是你說的位置0,位置1這類東西)。如果沒有的話,那麼這段資料是不可以被壓縮的。除非你得擴充你的無理數表。這就引入了一個新的問題,暫且不論。
至此,問題就變成了,無理數壓縮演算法的應用場景到底寬不寬?無理數壓縮演算法的速度到底快不快?這不僅是你會遇到的問題,這是所有壓縮演算法都會遇到的問題。
當然是可以的,下面是理由。
對於某一種壓縮演算法來說,不是所有的資料都是可以壓縮的,你把一個檔案用某一種壓縮演算法壓縮過一次之後,把壓縮好的資料再次作為這個壓縮演算法的輸入,輸出之後,這段資料的壓縮率為0,因為這段資料已經不可能再被這個演算法壓縮了。也就是說,壓縮演算法使用場景不是無窮的,每一種壓縮演算法都只能用在特定的場合,基於這個前提我們來設計一種應用範圍很窄的壓縮演算法。
假設一種文件,裡面放的全是重複的視覺化字元,並且這些字元會頻繁的重複,而且重複的次數不超過256次,類似下面的內容: "QQAAAAWWWWrrrtttttttVVVVuuuOOOPP",基於這樣的內容我們可以設計一個壓縮演算法,壓縮出來的內容是‘Q’2‘A’4‘W’4‘r’3‘t’7‘V’4‘u’3‘O’3‘P’2,想必大家都能看懂,這個壓縮演算法壓縮出來的結果以2個位元組為單位,第一個位元組表示的是重複的字元,第二個位元組放的是重複的次數。
先解釋有些答主所說的資訊理論的問題。在上面的文字中,那兩句加黑的話,“裡面放的全是重複的視覺化字元,並且這些字元會頻繁的重複,而且重複的次數不超過256次”,“以2個位元組為單位,第一個位元組表示的是重複的字元,第二個位元組放的是重複的次數。”這兩句話本身包含了這種文件的特點,以及壓縮演算法的資料結構和規則,而這些特點、資料結構和規則本身包含了很多很多資訊,在使用同一種壓縮和解壓縮演算法的時候,這些資訊都是公開的,我們用這些公開的資訊去解壓縮那些已經壓縮過的資訊,資訊本身是沒有減少的。只是因為我們用公開的資訊去替代了一部分未知的資訊。而所有的壓縮演算法都是這個道理,不管你用無理數,還是其他的壓縮演算法,本質並沒有發生變化。
回到題主的問題上來,到底能不能用無理數來作為壓縮的“公開資訊”呢,答案肯定是可以的,不過難點在於,你得維護一個無理數表,這個無理數表裡存放的無理數,有能力應對大多數的情況,舉個例子,假設一段資料是0100101110011010101000010100101110101010001010101110101010100101010101101010101010101010100010101010101010000000001111100111101111101110111110,那麼你的無理數表裡有沒有能夠有效並且快速的找到與這段資料相符的資料,如果有的話,那麼只需要給出這個無理數在表裡的索引,以及這段資料在這個無理數里的索引(就是你說的位置0,位置1這類東西)。如果沒有的話,那麼這段資料是不可以被壓縮的。除非你得擴充你的無理數表。這就引入了一個新的問題,暫且不論。
至此,問題就變成了,無理數壓縮演算法的應用場景到底寬不寬?無理數壓縮演算法的速度到底快不快?這不僅是你會遇到的問題,這是所有壓縮演算法都會遇到的問題。