UTILS.
100% в браузере

Калькулятор расстояния Хэмминга

Подсчитайте позиции, в которых различаются две строки, битовые строки или шестнадцатеричные значения равной длины, с нормализованным расстоянием и подсветкой различий.

результат

Об этом инструменте

Калькулятор расстояния Хэмминга подсчитывает позиции, в которых различаются два ввода равной длины — основную метрику, лежащую в основе кодов обнаружения и исправления ошибок. Оба ввода должны быть одинаковой длины; если это не так, инструмент показывает понятную ошибку с указанием каждой длины, а не угадывает выравнивание. Он сообщает необработанное расстояние, нормализованное расстояние (расстояние ÷ длина, от 0 до 1), длину сравнения, количество совпадающих позиций и попозиционный diff, который подсвечивает каждое несовпадение красным.

Три режима охватывают распространённые случаи. В текстовом режиме он сравнивает строки по кодовым точкам, поэтому равная длина означает одинаковое количество символов. В двоичном режиме он проверяет, что каждый ввод содержит только 0 и 1 равной длины, и подсчитывает различающиеся битовые позиции — что эквивалентно popcount их XOR. В hex-режиме он разбирает оба ввода как шестнадцатеричные равной длины в цифрах, выполняет XOR понибблово и суммирует установленные биты, давая истинное побитовое расстояние Хэмминга; длина здесь — это общее число бит (шестнадцатеричные цифры × 4).

Вычисление чистое, детерминированное и полностью офлайн — ничего из введённого не покидает ваш браузер. Расстояние Хэмминга используется для измерения того, сколько однобитовых ошибок разделяют два кодовых слова, для сравнения хешей или отпечатков фиксированной длины и в биоинформатике для сравнения последовательностей равной длины. Поскольку оно требует равной длины, используйте расстояние редактирования, когда строки могут различаться по длине.

Часто задаваемые вопросы

Почему два ввода должны быть одинаковой длины?
Расстояние Хэмминга определено только для последовательностей равной длины — оно сравнивает позицию i одного с позицией i другого. Если длины различаются, канонического выравнивания нет, поэтому инструмент сообщает об ошибке с обеими длинами. Для вводов разной длины используйте расстояние Левенштейна (расстояние редактирования).
Что подсчитывает двоичный режим?
Он проверяет, что оба ввода — строки из 0 и 1 равной длины, затем подсчитывает битовые позиции, которые различаются — то же, что и число единичных бит (population count) XOR двух битовых строк.
Как hex-режим вычисляет расстояние?
Каждая шестнадцатеричная цифра — это ниббл (4 бита). Инструмент выполняет XOR двух значений поцифрово и суммирует установленные биты по всем нибблам, давая побитовое расстояние Хэмминга. Длина, используемая для нормализации, — это общее число бит, то есть количество шестнадцатеричных цифр, умноженное на четыре.
Что такое нормализованное расстояние?
Это необработанное расстояние, делённое на длину сравнения, значение от 0 (идентичны) до 1 (различаются все позиции). Оно позволяет сравнивать доли несовпадений для вводов разной длины по одной шкале 0–1.

Больше инструментов