Khoảng Cách Hamming Là Gì?
Khoảng cách Hamming giữa hai chuỗi có cùng độ dài là số vị trí mà các ký hiệu tương ứng khác nhau. Được đặt theo tên nhà khoa học Richard Hamming, đây là một khái niệm nền tảng trong lý thuyết thông tin, lý thuyết mã hóa và khoa học máy tính. Nó cho biết số lần thay thế tối thiểu cần thực hiện để biến chuỗi này thành chuỗi kia, và được ứng dụng rộng rãi trong các mã phát hiện lỗi và sửa lỗi.
Cách Sử Dụng Công Cụ
Hãy nhập hai chuỗi của bạn — chúng có thể là dãy nhị phân (ví dụ 1011101), các bazơ DNA, hoặc bất kỳ văn bản nào. Công cụ sẽ so sánh từng ký tự một và đếm xem có bao nhiêu vị trí khác nhau. Nếu hai chuỗi có độ dài khác nhau, mỗi ký tự dư ra ở chuỗi dài hơn sẽ được tính là một điểm khác biệt.
Giải Thích Công Thức
Với hai chuỗi a và b, khoảng cách Hamming là tổng trên tất cả các vị trí i của một hàm chỉ thị, bằng 1 khi \(a_i \neq b_i\) và bằng 0 trong trường hợp ngược lại:
$$d(a, b) = \sum_{i=1}^{\min(|a|,|b|)} \left[\, \text{A}_i \neq \text{B}_i \,\right] + \Big|\; |\text{A}| - |\text{B}| \;\Big|$$
Kết quả luôn là một số nguyên không âm, nằm trong khoảng từ 0 (hai chuỗi giống hệt nhau) đến độ dài của chuỗi (mọi vị trí đều khác nhau).
Ví Dụ Minh Họa
So sánh 1011101 và 1001001. Khi xếp thẳng hàng:
10111011001001
Các vị trí khác nhau nằm ở chỉ số thứ 3 (1 so với 0) và chỉ số thứ 5 (1 so với 0). Điều này cho ra khoảng cách Hamming bằng 2.
Câu Hỏi Thường Gặp
Hai chuỗi có bắt buộc phải cùng độ dài không? Khoảng cách Hamming cổ điển yêu cầu hai chuỗi phải có cùng độ dài. Tuy nhiên, công cụ này vẫn đưa ra kết quả hữu ích cho các chuỗi không bằng nhau bằng cách tính mỗi ký tự dư ra là một điểm không khớp.
Công cụ có hoạt động với văn bản không phải nhị phân không? Có. Mọi loại ký tự đều có thể được so sánh — chữ cái, chữ số hay ký hiệu.
Khoảng cách Hamming khác gì so với khoảng cách Levenshtein? Khoảng cách Hamming chỉ đếm các phép thay thế tại những vị trí cố định, trong khi khoảng cách Levenshtein còn cho phép cả phép chèn và phép xóa ký tự.