Калькулятор расстояния Хэмминга
Введите две строки одинаковой длины, два двоичных кода или два числа. Калькулятор посчитает позиции, в которых они различаются, перечислит их и покажет долю совпадающих позиций. Числа сравниваются по битам через XOR.
Работает в браузере: всё, что вы вводите, никуда не отправляется.
Как пользоваться
- Выберите, что сравнивать: текст, двоичные строки, целые числа или hex.
- Введите оба значения. Текст и двоичные строки должны быть одной длины; пробелы внутри двоичных строк не учитываются.
- Смотрите расстояние, сходство (доля совпавших позиций) и список различающихся позиций.
Как это считается
Для строк сравниваются символы на каждой позиции и считаются несовпадения. Для чисел выполняется XOR и считаются единичные биты результата — это то же самое, что сравнить их двоичную запись побитно.
Сходство = (длина − расстояние) ÷ длина.
Пример
Двоичные коды 1011101 и 1001001, по 7 бит:
| Позиция |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
| Первый |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
| Второй |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
Различаются позиции 3 5, поэтому расстояние — 2, совпадают 5 позиций, сходство — 71,43 %.
В режиме текста «karolin» и «kathrin» различаются в позициях 3, 4 и 5: расстояние 3, сходство 57,14 %.
Советы
- Сначала одинаковая длина. Если длины разные, калькулятор сообщит об этом, а не будет угадывать выравнивание.
- Коды с исправлением ошибок: наименьшее расстояние между двумя кодовыми словами показывает, сколько ошибочных бит код обнаружит и исправит.
- Хеши изображений: два 64-битных перцептивных хеша с малым расстоянием обычно принадлежат почти одинаковым картинкам — вставьте их в режиме hex.
Частые вопросы
Что такое расстояние Хэмминга?
Это число позиций, в которых различаются две последовательности одинаковой длины. Слова «karolin» и «kathrin» различаются в 3-й, 4-й и 5-й буквах, поэтому расстояние между ними — 3. Учитываются только замены, вставки и удаления — нет.
А если строки разной длины?
Тогда расстояние Хэмминга не определено. Дополните более короткую строку, если это имеет смысл для ваших данных, или используйте расстояние Левенштейна, где разрешены вставки и удаления: его считает инструмент сравнения текстов на сайте.
Как считается расстояние между числами?
Числа сравниваются по битам: расстояние равно числу единиц в a XOR b. 5 = 101, 3 = 011, XOR — 110, значит, расстояние 2. Более короткое число дополняется нулями слева.
Где применяется расстояние Хэмминга?
В кодах, обнаруживающих и исправляющих ошибки (код с минимальным расстоянием d обнаруживает d − 1 ошибочных бит и исправляет ⌊(d − 1)/2⌋), при сравнении перцептивных хешей изображений, в генетике для последовательностей ДНК одинаковой длины и в поиске ближайших соседей по двоичным векторам.
Различаются ли заглавные и строчные буквы?
Да, А и а — разные символы. Символ — это целый символ Юникода, поэтому эмодзи или буква с ударением занимают одну позицию.