Кривая Гильберта
Еще до того, как появились графические изображения кривой Пеано, Давид Гильберт открыл другую кривую, которая также покрывает плоскость. Базовый принцип, лежащий в основе кривой Гильберта, слегка отличается от принципа кривой Пеано: используется не единственный шаблон, а несколько, и к каждому из них применяются различные правила. Подобные построения называются нестандартными.
Блестящий немецкий математик Давид Гильберт.
На рисунке показано, как на каждом шаге части кривой соединяются тремя отрезками, которые непрерывно уменьшаются в размерах. Именно так описал построение этой кривой сам Гильберт в 1891 г. в короткой статье всего на двух страницах. Существует стандартное построение этой же кривой, в основе которого лежит несколько иная фигура. Оставим поиски этого построения заинтересованному читателю. Отличие кривой Гильберта от кривой Пеано в том, что в первой на каждом шаге построения длины отрезков и квадратов уменьшаются в два раза, а в кривой Пеано — в три раза.
Существуют интересные вариации кривой Гильберта: в одной из них в качестве исходной фигуры используется перевернутая буква V, в другой, за авторством Карла Хансена, исходной фигурой является буква Н (очевидно, по первой букве фамилии Гильберта — Hilbert). Кривая Гильберта обладает еще одной любопытной особенностью: ее можно видоизменить так, что она будет покрывать объемную фигуру, как показано на рисунке:
Эта трехмерная версия кривой Гильберта имеет большое значение в устройствах передачи данных, в особенности там, где для выявления ошибок используется так называемый код Грея — вариация двоичного кода. В традиционном двоичном коде числа от 0 до 7 записываются так: 000, 001, 010, 011, 100, 101, 110, 111. Затем каждое число этой последовательности располагается в одной из вершин куба так, чтобы двоичные разряды соответствовали координатам этой вершины. Например, число 001 нужно расположить в точке с координатами (0, 0, 1). После этого числа нужно упорядочить, следуя вдоль кривой Гильберта, как показано на рисунке ниже.
Эта последовательность двоичных чисел является кодом Грея, который обладает особым свойством. При внимательном рассмотрении заметно, что соседние значения различаются только в одном разряде (одним битом информации), что не выполняется для традиционной последовательности чисел, где, например, за 001 следует 010 (эти числа отличаются двумя разрядами). Говоря техническим языком, расстояние Хэмминга между двумя соседними 3-битными числами равно 1. Если нам нужно закодировать не первые восемь натуральных чисел, а больше, то понадобится следующая итерация кривой Гильберта, с помощью которой мы закодируем числа от 0 до 31. Код Грея позволяет существенно снизить количество ошибок при передаче информации. В частности, он широко применяется в наземных сетях цифрового телевидения.