For a hash tree that covers 128 data blocks, how many hash checks do you need to perform to localize the error? Assume that error occurred on two blocks.

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "23". Trong cây băm (hash tree, cây Merkle), mỗi nút cha giữ băm của hai nút con; để khoanh vùng khối lỗi, ta kiểm gốc rồi đi xuống, ở mỗi tầng kiểm cả hai con của nút sai. Cây 128 khối sâu log2(128) = 7 tầng. Với hai khối lỗi có tổ tiên chung gần nhất ở độ sâu s, số lần kiểm là 1 + 2(s + 1) + 4(6 − s) = 27 − 2s: đoạn chung có một nút sai mỗi tầng (2 lần kiểm), sau chỗ tách có hai nút sai (4 lần kiểm). Cần nói thẳng: con số phụ thuộc vị trí hai khối lỗi mà đề không cho. Tách ngay dưới gốc (s = 0) cần 27 lần, đúng quy ước 4 × log2(n) − 1 (16 khối ra 15); tổ tiên chung ở độ sâu 2 cho 1 + 2 × 3 + 4 × 4 = 23 lần. "23" được chốt vì gần quy ước nhất trong các phương án. "15" chỉ đúng khi hai khối lỗi là hai lá anh em (s = 6, 1 + 2 × 7 = 15). "19" ứng với tổ tiên chung ở độ sâu 4 (27 − 8), cũng chỉ là một vị trí riêng. "11" nhỏ hơn cả 15 lần tối thiểu để lần qua 7 tầng, không thể xảy ra.

Cùng phần 5

Xuất hiện trong 1 bộ đề