Właśnie dowiedziałem się o .rev
pliki z WinRAR - gdzie, jeśli mają objętość RAR 10-częściowy, na przykład, plus jeden .rev
(odzysk) Volume - .rev
objętość będzie w stanie „naprawić” każdy jeden uszkodzony .rar
głośności.
Jak to jest możliwe? Nie rozumiem, w jaki sposób jeden wolumin może mieć wszystkie dane do naprawy dowolnego / wszystkich indywidualnie uszkodzonych woluminów.
Sądzę, że być może jest to możliwe zamiast tego, że woluminy nie są dzielone „liniowo”, tak jak sobie wyobrażam, gdzie każdy wolumin RAR zawiera odrębne, indywidualne pliki całości; ale raczej .rev
naprawienie jest możliwe, gdy woluminy RAR są postrzegane jako jeden ciągły plik bitów i bajtów, że tak powiem, i że być może istnieje pewien czar CRC'ish (ah hem, „naprawa”) związany z naprawą uszkodzonych bajtów.
Ale po prostu nie rozumiem, jak można mieć 9 woluminów roboczych z 1 uszkodzonym, ale mieć wolumin odzyskiwania, który może naprawić dowolny z tych woluminów. W jaki sposób jeden wolumin jest w stanie pomieścić dane „wszystkich” woluminów?
źródło
Odpowiedzi:
Weźmy naprawdę prostą sprawę.
Masz cztery woluminy i wolumin odzyskiwania, każdy z 1 bitem informacji:
Wolumin odzyskiwania zawierałby wynik każdego z tych bitów XOR d razem:
Zatem nasz wolumin odzyskiwania zawiera pojedynczy bit
1
.Powiedzmy teraz, że tom 1 nie działa.
Jeśli XOR pozostałe woluminy 2, 3 i 4 z bitem odzyskiwania zamiast uszkodzonego woluminu, otrzymamy:
To mówi nam, że tom 1 zawierał
1
, ponieważ jest to wynik równania.Udawajmy, że zamiast tego zmarł tom 2, więc zastępujemy jego wartość w równaniu bitem odzyskiwania:
Wiemy więc, że tom 2 zawierał
0
, ponieważ jest to wynik równania.Jeśli tom 3 lub 4 zawiodły, oba wytworzyłyby
1
w tym równaniu.Tak więc, jeśli którykolwiek z woluminów ulegnie awarii, woluminu odzyskiwania można użyć do zrekonstruowania danych na podstawie pozostałych woluminów. Jest to prawdopodobnie najprostsza możliwa forma korekcji błędów. W przypadku awarii dwóch woluminów nic nie można odzyskać.
źródło
Aby naprawdę łatwo zrozumieć, jak to może być, wyobraź sobie, że wolumin odzyskiwania zawierał sumę pozostałych woluminów. Z listą liczb, których brakuje jednego z nich, i ich sumy, zawsze możesz zrekonstruować brakującą liczbę.
Weźmy na przykład te dwucyfrowe liczby, 13, 88, 17, 43. Jeśli wiedziałeś, że brakuje jednej liczby, a ostatnie dwie cyfry sumy wszystkich liczb to 81, możesz znaleźć brakującą liczbę. 13 + 88 + 17 + 43 = 161. Jedyną dwucyfrową liczbą, którą możesz dodać do tej liczby, która kończy się na 81, jest 20.
Powiedzmy, że masz 20 i brakuje Ci 43. 13 + 88 + 17 + 20 = 138. Jedyną dwucyfrową liczbą, którą możesz dodać do tej liczby, aby liczba kończąca się na 81 była 43, jest 43.
W ten sposób numer odzyskiwania pozwala znaleźć dowolną brakującą liczbę.
źródło