30

Я только что узнал о .rev файлов с WinRAR - где , если у вас есть 10 частей объема с RAR, например, плюс один .rev (восстановление) объема - объем .rev будет иметь возможность "исправить" любой из .rar объем.

Как это возможно? Я не понимаю, как на одном томе могут быть все данные для исправления любого / всех отдельно разбитых томов.

Я предполагаю, что, возможно, возможно вместо томов, которые не будут разбиты "линейно", как я себе представляю, где каждый том RAR содержит отдельные, отдельные файлы целого, упакованного внутри; скорее, возможно, восстановление .rev возможно, когда тома RAR рассматриваются как один непрерывный файл битов и байтов, если можно так выразиться, и что, возможно, существует какое-то колдовство CRC (ах, "ремонтные работы"), применяемое для исправления поврежденных байт.

Но я просто не понимаю, как вы можете иметь 9 рабочих томов с 1 поврежденным, но иметь том для восстановления, который может восстановить любой из этих томов. Как один том может хранить данные "всех" томов?

2 ответа2

53

Давайте возьмем действительно простой случай.

У вас есть четыре тома и том восстановления, каждый из которых содержит 1 бит информации:

         ========================================================
Volumes: = Volume 1 = Volume 2 = Volume 3 = Volume 4 = Recovery =
         =----------=----------=----------=----------=----------=
   Bits: =    1     =    0     =    1     =    1     =     1    =
         ========================================================

Том восстановления будет содержать результат каждого из этих битов XOR d вместе:

1 XOR 0 XOR 1 XOR 1 = 1

Итак, наш том для восстановления содержит один бит 1 .


Теперь, допустим, том 1 не работает.

Если мы XOR оставшихся томов 2, 3 и 4 с битом восстановления вместо сбойного тома, мы получим:

1 XOR 0 XOR 1 XOR 1 = 1
^

Итак, это говорит нам о том, что том 1 содержал 1 , так как он является результатом уравнения.

Давайте представим, что том 2 умер вместо этого, поэтому мы заменим его значение в уравнении битом восстановления:

1 XOR 1 XOR 1 XOR 1 = 0
      ^

Итак, мы знаем, что объем 2 содержал 0 , так как он является результатом уравнения.

Если том 3 или 4 потерпел неудачу, они оба выдали бы 1 в этом уравнении.


Таким образом, если какой-либо из томов вышел из строя, том восстановления можно использовать для восстановления данных на основе оставшихся томов. Вероятно, это самая простая форма исправления ошибок, которую вы можете иметь. Если два тома вышли из строя, вы ничего не сможете восстановить.

21

Для действительно простого способа понять, как это может быть, представьте, если том восстановления содержит сумму других томов. Со списком чисел, отсутствующим одним из них и их суммой, вы всегда можете восстановить отсутствующее число.

Например, рассмотрим эти две цифры, 13, 88, 17, 43. Если вы знали, что было одно пропущенное число, а последние две цифры суммы всех чисел равны 81, вы можете найти пропущенное число. 13 + 88 + 17 + 43 = 161. Единственное двузначное число, которое вы можете добавить к этому, чтобы сделать число, заканчивающееся на 81, равно 20.

Скажем, у вас было 20, а вам не хватало 43. 13 + 88 + 17 + 20 = 138. Единственное двузначное число, которое вы можете добавить к этому, чтобы число, заканчивающееся на 81, было 43.

Таким образом, номер восстановления позволяет найти любой пропущенный номер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .