Расстояние Хэмминга показывает, сколько соответствующих позиций различается в двух строках равной длины. Сравнивайте строки посимвольно и прибавляйте единицу при каждом несовпадении. Итоговое число — расстояние Хэмминга. Ноль означает, что строки идентичны, а расстояние, равное длине строки, — что различается каждая позиция. Понятие названо в честь математика Ричарда Хэмминга и лежит в основе теории кодирования и цифровой связи.
Например, hello и hallo различаются только во второй позиции, поэтому расстояние равно единице. Двоичные строки 1011101 и 1001001 различаются в третьей и пятой позициях, давая расстояние два. Инструмент нумерует позиции с единицы: первый символ имеет позицию один, а не индекс ноль. Позиционное сходство также рассчитывается как число совпадающих позиций, делённое на общую длину, и выражается в процентах.
Равная длина обязательна для стандартного определения. Расстояние Хэмминга описывает только замены: символ в некоторой позиции заменяется другим. Вставки и удаления не учитываются, поскольку они сдвигают последующие позиции и исключают прямое взаимно-однозначное сравнение. Для строк разной длины обычно лучше подходит редакционное расстояние, например расстояние Левенштейна. Поэтому калькулятор отклоняет неравные по длине входные данные, а не дополняет или обрезает их без предупреждения.
Расстояние Хэмминга широко применяется в кодах обнаружения и исправления ошибок. Допустимые кодовые слова проектируются с определённым минимальным расстоянием между ними. Если принятое слово отличается от допустимого лишь несколькими битами, декодер может предположить, какие ошибки передачи произошли. При стандартных допущениях код с минимальным расстоянием три обнаруживает до двух битовых ошибок и исправляет одну.
Эта мера также используется в теории информации, криптографии, кластеризации, компьютерном зрении и анализе биологических последовательностей. Сравнение хешей может подсчитывать разные биты для изучения лавинного эффекта, а двоичные векторы признаков эффективно сравниваются операцией исключающего ИЛИ. Калькулятор выполняет точное посимвольное сравнение с учётом регистра, поэтому заглавная A отличается от строчной a. Пробелы и знаки препинания тоже считаются символами. Используйте единый формат ввода и перед интерпретацией убедитесь, что последовательности представляют выровненные наблюдения.
Примеры расстояния Хэмминга
Последовательности
Расстояние
Различающиеся позиции
hello и hallo
1
Различается только позиция 2.
1011101 и 1001001
2
Различаются позиции 3 и 5.
karolin и kathrin
3
Различаются позиции 3, 4 и 5.
Как рассчитать расстояние Хэмминга
Введите первую последовательность точно в том виде, в котором её нужно сравнить.
Введите вторую последовательность с тем же числом символов.
Нажмите «Рассчитать расстояние Хэмминга», чтобы подсчитать несовпадения.
Просмотрите расстояние, процент сходства и несовпадающие позиции с нумерацией от единицы.
Частые вопросы о расстоянии Хэмминга
Что означает нулевое расстояние Хэмминга?
Каждый символ совпадает с символом на соответствующей позиции. Последовательности идентичны при точном сравнении с учётом регистра.
Могут ли строки быть разной длины?
Нет, стандартное расстояние Хэмминга определено для строк равной длины. Если нужно учитывать вставки и удаления, используйте расстояние Левенштейна или другую редакционную метрику.
Учитывается ли регистр?
Да, заглавные и строчные буквы считаются разными символами. Если анализ должен игнорировать регистр, приведите строки к единому регистру до ввода.
Как вычисляется процент сходства?
Калькулятор вычитает расстояние из длины последовательности и делит на эту длину. Умножение на 100 переводит долю совпадений в проценты.
Как расстояние Хэмминга используется для исправления ошибок?
Системы кодирования разделяют допустимые кодовые слова известными минимальными расстояниями. Приёмник может выбрать ближайшее допустимое слово, чтобы обнаружить или исправить ограниченное число изменённых битов.