UTILS.
100% trong trình duyệt

Máy tính khoảng cách Hamming

Đếm các vị trí mà hai chuỗi, bitstring, hoặc giá trị hex cùng độ dài khác nhau, với khoảng cách chuẩn hóa và diff làm nổi bật các điểm không khớp.

đầu ra

Về công cụ này

Máy tính khoảng cách Hamming đếm các vị trí mà hai đầu vào cùng độ dài khác nhau — chỉ số cốt lõi đằng sau các mã phát hiện và sửa lỗi. Cả hai đầu vào phải cùng độ dài; nếu không, công cụ hiển thị lỗi rõ ràng kèm độ dài của mỗi bên thay vì đoán một cách căn chỉnh. Nó báo cáo khoảng cách thô, khoảng cách chuẩn hóa (khoảng cách ÷ độ dài, từ 0 đến 1), độ dài so sánh, số vị trí khớp, và một diff theo từng vị trí làm nổi bật mọi điểm không khớp bằng màu đỏ.

Ba chế độ bao quát các trường hợp thông dụng. Ở chế độ văn bản, nó so sánh các chuỗi theo từng code point, nên cùng độ dài nghĩa là cùng số ký tự. Ở chế độ nhị phân, nó xác thực rằng mỗi đầu vào chỉ chứa các số 0 và 1 cùng độ dài và đếm các vị trí bit khác nhau — tương đương với popcount của XOR của chúng. Ở chế độ hex, nó phân tích cả hai đầu vào dưới dạng thập lục phân cùng độ dài chữ số, XOR chúng theo từng nibble, và cộng các bit được đặt, cho ra khoảng cách Hamming đúng ở cấp bit; độ dài ở đây là tổng số bit (số chữ số hex × 4).

Phép tính là thuần túy, xác định và hoàn toàn ngoại tuyến — không có gì bạn nhập rời khỏi trình duyệt. Khoảng cách Hamming được dùng để đo bao nhiêu lỗi đơn bit ngăn cách hai từ mã, để so sánh các hash hay dấu vân độ dài cố định, và trong tin sinh học để so sánh các chuỗi cùng độ dài. Vì nó yêu cầu cùng độ dài, hãy dùng edit distance thay thế khi các chuỗi có thể khác độ dài.

Câu hỏi thường gặp

Tại sao hai đầu vào phải cùng độ dài?
Khoảng cách Hamming chỉ được định nghĩa cho các chuỗi cùng độ dài — nó so sánh vị trí i của bên này với vị trí i của bên kia. Nếu độ dài khác nhau thì không có cách căn chỉnh chuẩn tắc, nên công cụ báo lỗi kèm cả hai độ dài. Với các đầu vào khác độ dài, hãy dùng khoảng cách Levenshtein (edit) thay thế.
Chế độ nhị phân đếm cái gì?
Nó xác thực rằng cả hai đầu vào là chuỗi các số 0 và 1 cùng độ dài, rồi đếm các vị trí bit khác nhau — giống như population count (số bit được đặt) của XOR của hai bitstring.
Chế độ hex tính khoảng cách như thế nào?
Mỗi chữ số hex là một nibble (4 bit). Công cụ XOR hai giá trị theo từng chữ số và cộng các bit được đặt trên tất cả các nibble, cho ra khoảng cách Hamming ở cấp bit. Độ dài dùng để chuẩn hóa là tổng số bit, tức số chữ số hex nhân bốn.
Khoảng cách chuẩn hóa là gì?
Đó là khoảng cách thô chia cho độ dài so sánh, một giá trị giữa 0 (giống hệt nhau) và 1 (mọi vị trí đều khác). Nó cho phép bạn so sánh tỷ lệ không khớp giữa các đầu vào có độ dài khác nhau trên cùng thang 0–1.

Công cụ khác