Suppose you are using the LZW algorithm to encode the message AABAACAABD contents of the dictionary at the beginning of encoding are: (1) A (2) B (3) C (4) D What string is denoted by code word (7)?

5 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: "BA". LZW giữ một chuỗi đang khớp và chỉ thêm mục mới vào từ điển đúng lúc chuỗi đang khớp cộng ký tự vừa đọc không còn trong từ điển, mục mới chính là chuỗi dài hơn ấy. Lần theo AABAACAABD với từ điển đầu gồm (1) là A, (2) là B, (3) là C, (4) là D: chuỗi khớp A gặp A nên AA chưa có, phát (1) và thêm AA thành (5); chuỗi khớp A gặp B nên AB chưa có, phát (1) và thêm AB thành (6); chuỗi khớp B gặp A nên BA chưa có, phát (2) và thêm BA thành (7). Vậy mã (7) chỉ chuỗi BA. Vì vậy "AB" sai vì đó là mục (6), được thêm ở bước ngay trước; "AC" sai vì khi đọc tới C thì chuỗi đang khớp đã là AA nên mục thêm lúc đó là AAC mang mã (8), cặp AC không bao giờ vào từ điển; "ABA" sai vì mục ba ký tự chỉ sinh ra sau khi khớp được một mục hai ký tự, mà AB không bao giờ được khớp lại trong phần còn lại của thông điệp; "BAA" sai vì cũng vậy, BA chỉ xuất hiện một lần duy nhất nên không bao giờ được khớp để mở rộng.

Cùng phần 8

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