Re: [問題] 編碼or密碼學,達到資料回復

看板C_and_CPP作者 (卡卡獸)時間10年前 (2014/07/17 00:49), 編輯推噓3(3014)
留言17則, 6人參與, 最新討論串2/3 (看更多)
幫翻譯。 ※ 引述《ccoococo (...)》之銘言: : 各位大大好 : 由於小弟研究上需要用到類似資料回復的觀念 ^^^^^^^^ (1) 編碼/解碼 (2) 容錯 (3) 壓縮 ,的確這三個都有可能。 : 可是本身實驗室及周遭沒有相關知識可以請教 : 所以PO在本版 如有不妥即馬上刪文 抱歉 及謝謝 : 例: : int array[10]; : 是否有"可能"(因為在這方面沒什麼涉獵 所以搞不好想法根本是天方夜譚XD : 就是 當我拿出任一值, 假設讀array[3], "然後此array就不可再被access"!!! 假設是 unsigned src[] = {0,1,2,3,4,5,6,7,8,9}; src[i] 只能被尋訪一次 { for all i } , 只要 src[i] 尋訪過,就當 src[i] 被銷毀。 : 之後是否可以藉由此筆資料 獲得任一我想要的其他位置的資訊 : 其中可用任何編碼方式 array存的資料也都可先經過處理, 也可更改或加任何資料結構 簡單總結 (1) unsigned src[] 是原始資料,所有的 src[i] 只能被尋訪一次 (2) 在尋訪的 src[i] ,可能 經由某種計算 會產生另一份或多份 unsigned encode[], 並銷毀 src[i] (3) encode 之資料結構不局限於陣列 (4) 現 src 全都被銷毀了,有沒有辦法透過 encode 把 src 做出 restore 動作 : ---------------------------------------------------------------------------- : 回復資料最直觀的方法是拆成 int array1[5], array2[5]; : 再把兩個array的elements互相XOR, 放到第三條array中 : array3[0] = array1[0] XOR array2[0]; : array3[1] = array1[1] XOR array2[1]; 類推 : 之後access array1後, 我也能藉由array2及array3把"在array1中想要的資料拿到" : 就是RAID的觀念 無奈不能採用此方法Q_Q : ----------------------------------------------------------------------------- : 謝謝各位了 這例子和總結應是一樣的,不過可能發到 Prob_Solve 會好點,以下請繼續討論。 -- ~ 這輩子與神手無緣 我只好當神獸了 ~ 卡卡獸 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.165.160 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1405529388.A.867.html

07/17 01:14, , 1F
感謝翻譯~然後現在才發現還有一個地方沒講清楚= =
07/17 01:14, 1F

07/17 01:15, , 2F
資料結構限定為 只能access一次的array...
07/17 01:15, 2F

07/17 01:23, , 3F
原先不知道還有Prob_Solve版, 抱歉, &感謝
07/17 01:23, 3F

07/17 01:58, , 4F
我怎麼覺得他的意思是 src[i] 任一個被尋訪過後,整個
07/17 01:58, 4F

07/17 01:58, , 5F
src 就會被銷毀?
07/17 01:58, 5F

07/17 01:59, , 6F
@suhorng: 一開始我也以為是這樣, 不過看他下面的例子,
07/17 01:59, 6F

07/17 01:59, , 7F
比較像是 for each elements (xor 的例子)
07/17 01:59, 7F

07/17 06:03, , 8F
如果是 for each elements,全部複製一份不就好了...
07/17 06:03, 8F

07/17 06:04, , 9F
如果是 suhorng 大的意思,就是每個 element 都要有所有
07/17 06:04, 9F

07/17 06:04, , 10F
的資訊,等於要把原始資料 copy 存在所有 element 裏?
07/17 06:04, 10F

07/17 11:46, , 11F
@suhorng: 是這樣沒錯 src[]只要有被尋訪過, 整個src銷毀
07/17 11:46, 11F

07/17 11:48, , 12F
舉例: read src[0],成功. src不能再被造訪
07/17 11:48, 12F

07/17 11:50, , 13F
而此時又需要read src[k] {for k!=0}
07/17 11:50, 13F

07/17 11:51, , 14F
整條陣列複製一份也是個解法, 只是overhead太大
07/17 11:51, 14F

07/17 14:10, , 15F
原PO意思是,任意(已知?)長度資料,是否能壓縮成固定(較短)長度?
07/17 14:10, 15F

07/17 14:41, , 16F
所以他應該要找的是無損壓縮之類的東西
07/17 14:41, 16F

07/17 19:42, , 17F
er.. 結果是我翻的有問題 orz
07/17 19:42, 17F
文章代碼(AID): #1JngqiXd (C_and_CPP)
文章代碼(AID): #1JngqiXd (C_and_CPP)