Mã có tính phân tách được, mã có tính prefix

Một phần của tài liệu giáo trình về môn lý thuyết thông tin (Trang 46 - 47)

10 CHƯƠNG 4: LÝ THUYẾT MÃ

10.3 Mã có tính phân tách được, mã có tính prefix

Trong mục này ta xét các tiêu chuẩn được sử dụng để đánh giá một mã hiệu có thỏa mãn điều kiện thiết lập mã hay không. Ta biết rằng điều kiện chung để thiết lập mã là mã

phải phân tách được cho nên tiêu chuẩn thiết lập mã chính là tiêu chuẩn để mã phân tách được hay chính là những tiêu chuẩn cho phép tách đúng từng từ mã từ chuỗi mã nhận được.

Lưu ý giữa từ mã và tin được mã hóa có quan hệ 1-1 thì việc giải mã ở phía thu sẽ bao gồm việc tách đúng từ mã và chuyển ngược từ mã thành tin tương ứng.

Việc chuyển từ mã thành tin được thực hiện nhờ một sơ đồ giải mã xác định.

Việc tách đúng các từ mã là một thuật toán kiểm tra tính đúng của một số tiêu chuẩn được gọi là điều kiện phân tách của mã hiệu. Việc kiểm tra này sẽ bắt đầu từ ký hiệu mã đầu tiên của chuỗi cho đến khi có thể cắt được một từ mã thì nó sẽ cắt từ mã và lại coi ký hiệu tiếp sau làm ký hiệu đầu tiên của chuỗi để kiểm tra tiếp.

Một trong những cách tiếp cận cơ bản nhất là trong bảng mã, hãy chọn 1 từ mã trong với phần đầu của xâu mã sau đó xóa phần đầu của xâu mã và ghộp kí hiệu tương ứng vào xâu gốc, quá trình sẽ dừng khi xâu mã đó bị xóa hết.

Thuật toán giải mã có thể mô phỏng như sau Procedure Giai_Ma;

Input st:string;{Xau da ma hoa}

x:array[1..N] of char;{Bang ki hieu}

b:array[1..N] of string;{Bang ma tuong ung} Output xaugoc:string;{xau goc ban dau}

BEGIN xaugoc:=’’; while length(st)>0 do for i:=1 to N do if b[i]=copy(st,1,lenght(b[i])) then begin xaugoc:=xaugoc+x[i]; delete(st,1,lenght(b[i])); end; END;

Một phần của tài liệu giáo trình về môn lý thuyết thông tin (Trang 46 - 47)