Однако математика двигается вперед быстрее, чем патентное бюро. Швейцарский математик и физик Марсель Голей узнал об идеях Хэмминга от Шеннона и разработал много новых кодов, не зная о том, что Хэмминг разрабатывал такие же коды за завесой патентного права. Голей опубликовал свои работы первым, что повлекло за собой путаницу в отношении авторских прав, которая сохраняется до сих пор{193}. Что касается патента, в Bell его получили, но потеряли право взимать деньги за лицензию в рамках антимонопольного соглашения 1956 года{194}.
Что делает код Хэмминга столь эффективным? Чтобы понять это, необходимо взглянуть на ситуацию под другим углом и поставить вопрос так: что могло бы стать причиной его провала?
Помните: настоящее проклятие любого кода с исправлением ошибок – это блок цифр, который очень близок к
Что мы имеем в виду, когда говорим про «близость» одного блока к другому? На первый взгляд может показаться, что мы используем метафору, поскольку блоки двоичных знаков не имеют местоположения. По твердому убеждению Хэмминга, понятие близости отнюдь не метафора и таковой не должна восприниматься – именно в этом и заключался его важный концептуальный вклад. Он ввел новое понятие расстояния, которое теперь называется расстоянием Хэмминга. Концепция расстояния была адаптирована к новой математике информации точно так же, как расстояние Евклида и Пифагора было адаптировано к геометрии плоскости. Хэмминг дал простое определение: расстояние между двумя блоками символов – это количество битов, которые необходимо изменить, чтобы превратить один блок в другой. Таким образом, расстояние между кодовыми словами 0010111 и 0101011 равно 4; чтобы превратить первое кодовое слово во второе, необходимо изменить биты во второй, третьей, четвертой и пятой позициях.
Восемь кодовых слов Хэмминга – хороший код, поскольку ни один блок из семи бит не находится на расстоянии Хэмминга между двумя кодовыми словами, равному 1. Если бы это было так, два кодовых слова были бы на расстоянии Хэмминга 2 друг от друга[227]. Но вы можете проверить это сами – и увидите, что нет таких двух кодовых слов, которые отличались бы на две позиции; на самом деле расстояние Хэмминга между любыми двумя кодовыми словами равно 4. Вы можете провести аналогию между этими кодовыми словами и электронами в коробке или необщительными людьми в кабине лифта. Они находятся в ограниченном пространстве и в пределах этих ограничений пытаются расположиться как можно дальше друг от друга.
Этот же принцип лежит в основе всех возможных каналов коммуникации, устойчивых к помехам. Именно так устроен естественный язык: если я напишу