2010-05-18 175 views
0

我有一個很長的整數列表,我需要將其減少到一個整數。整數列表可以是從0到300整數(大約)的任何地方。我需要能夠編碼/解碼。intger編碼和解碼問題

有沒有比查找表更好的選擇?

+2

定義「將其減少爲單個整數」 – 2010-05-18 21:55:23

+0

是否將所有整數連接成一個被視爲「reduce」的超長整數? :O – 2010-05-18 22:07:11

回答

0

任何用於將N位數據減少爲M位數據的技術,其中M小於N只能用於某種方式冗餘的輸入。減少300:1將需要輸入中的冗餘量(例如,幾乎所有的數字都是零)。

+0

是傑裏多數民衆贊成在我的想法。在大多數情況下,它將是最0的,但其他時間不會。我會比我的32位整數多得多。 只是把這個簡單的路線和查找表。在我開始這個狗屎之後的3個月裏,這是他們改變要求的錯。 – asdasd 2010-05-18 22:00:57

0

如果您想要保存一些空間,並且您的32位整數列表在統計上圍繞一定範圍的值進行聚集,則可以使用整數壓縮。

.NET對IL程序集中的方法元數據使用整數壓縮。這個想法是,如果整數通常很小(例如1-100),則可以使用遠遠少於32位的編碼來節省空間。根據你的方案,你將不得不犧牲一點或兩點來告訴壓縮器/解壓縮器你是小值還是大值。請參閱here瞭解.NET如何執行此操作