3 回答

TA貢獻2012條經(jīng)驗 獲得超12個贊
由于n是固定的,所以問題很簡單:將 ( a , b )編碼為a ?2 n + b。
如果m和n不固定,則問題是不可能的,因為它要求我們將(兩位a,一位b)和(一位a,兩位b)都編碼為三位,這意味著我們必須編碼十二種可能性 (0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3) ), (2, 0), (2, 1), (3, 0), (3, 1) 三種比特的八種組合,這是不可能的。

TA貢獻1799條經(jīng)驗 獲得超6個贊
如果您絕對必須具有完全可逆性,則需要放寬至少一個隱含的初始條件(因為如果您不單獨記住這些數(shù)字中的任何一個并且響應位長 R 小于 m+n,則您將不可撤銷地失去完全可逆性):
要么你應該讓 R 完全等于 m+n,在這種情況下,最簡單的方法是將 m 長度左移 n 位,然后添加 n 位數(shù)字(反轉,復制,右移由 n 位得到 m 長度的 1,左移 n 位并從/與編碼數(shù)減去/按位異或得到 n 長度的數(shù)),
或者你應該在某處/以某種方式單獨記住其中一個數(shù)字(希望它對用戶來說很常見?)并且只是按位異或數(shù)字(反轉,只是按位異或結果與存儲的數(shù)字);獎勵積分,如果這對用戶來說很常見,那么每個用戶超過第一個的任何額外編碼 ID 只會增加 max(m,n) 位數(shù)據(jù)到存儲需求。
添加回答
舉報