// Levenshtein 編碼 —— 具漸近最優性的遞迴通用整數編碼
遞迴編碼「長度的長度」,直到回到 0。
對非常大的整數,其碼長逼近理論上的最小值。
不需假設分佈或參數,適用於所有非負整數。
Levenshtein 編碼(亦稱為 Levenstein 或 L* 編碼)會遞迴地編碼整數的二進位長度。對二進位長度為 N 的整數 n:先遞迴編碼 C(N-1),再附加 '1',最後附加移除首個 1 之後的 n 其餘位元。遞迴在 0 結束,由此得到在漸近意義上最優的通用整數碼。
0 → 0 1 → 10 (C(0) + 1 + '') 2 → 110 (C(1) + 1 + '0') 3 → 111 (C(1) + 1 + '1') 4 → 11000 (C(2) + 1 + '00') 5 → 11001 (C(2) + 1 + '01') 遞迴結構: C(0) = '0' C(1) = C(0) + 1 = '01' → '1' C(2) = C(1) + 1 + '0' = '110' C(3) = C(1) + 1 + '1' = '111'
Levenshtein 編碼(請勿與 Levenshtein 距離混淆)是一種對整數長度進行遞迴編碼的通用碼。由 Vladimir Levenshtein 提出,對於大型整數在漸近意義下是最優的。
此編碼會遞迴地編碼「位元長度減一」。對 N 位元長度的 n 進行編碼時,先編碼 (N-1),再附加 '1',最後附加 n 的後 (N-1) 位。遞迴在 0 結束,而 0 會被編碼為 '0'。
Levenshtein 編碼與 Elias Omega 一樣在漸近意義上是最優的,但採用不同的遞迴結構。相比 Elias Gamma/Delta,它更為複雜,但在極大整數上通常能得到更好的壓縮率。
Levenshtein 編碼主要應用於資訊理論與 Kolmogorov 複雜度等領域的理論研究。在實務系統中較少直接使用,但非常適合用來說明「最優通用編碼」的核心概念。