📜  拼图 |数据恢复问题

📅  最后修改于: 2022-05-13 01:57:25.504000             🧑  作者: Mango

拼图 |数据恢复问题

假设您有三个笔式驱动器 P1、P2 和 P3,每个都具有 1GB 的容量。您还有 3GB 数据。您必须将这些数据分为 P1、P2 和 P3,这样如果 P1、P2、P3 中的任何一个笔式驱动器崩溃,您应该能够从剩余的两个笔式驱动器中恢复所有数据。

例如 - 如果 P1 崩溃,那么您应该能够从 P2 和 P3 恢复 3GB 数据。
在 P2 和 P3 的情况下类似。

回答 :

假设3GB的数据被分成A、B、C三组,那么分布是这样的
P1-> A^B
P2-> B^C
P3-> C^A

现在假设笔式驱动器 P3 丢失,我们只剩下 P1 和 P2 的数据。正如我们所知
P1 包含 A 和 B 异或的数据。
P2 包含 B 和 C 的异或数据。



我们可以执行以下步骤来恢复整个数据。

第 1 步: P1 和 P2 的异或得出 (A^B)^(B^C) = B
步骤 2:从步骤 1 中获得的这个 B 与 P1 的 XOR 给出 (A^B)^B = A
步骤 3:将步骤 1 中获得的 B 与 P2 进行异或得出 (B^C)^C = C。

执行上述步骤将得到数据 A、B 和 C。

同样,我们可以在 P1 和 P2 的情况下执行这些步骤。