🔢 Код Грея
Віддзеркалений двійковий та шлях на гіперкубі
000 → 000
Крок 0 / 8
Вигляд
Біти
Анімація
Керування
Статистика
Кодів (2^n)
8
Змінений біт
Двійковий
000
Грея
000
Довідка та теорія

Код Грея (віддзеркалений двійковий код) упорядковує 2ⁿ двійкових значень так, що будь-які два сусідні коди відрізняються рівно на один біт. Запатентований Френком Греєм у 1953 році.

Формула XOR

Код Грея для цілого b дорівнює g = b XOR (b >> 1). Для оберненого перетворення складають зсуви: b = g XOR (g>>1) XOR …

Побудова віддзеркаленням з префіксом

Почніть з 1-бітного списку [0, 1]. Щоб перейти від n до n+1 бітів: візьміть список, запишіть його віддзеркалення (обернену копію) знизу, додайте префікс 0 кожному коду верхньої половини та 1 — нижньої. Властивість зміни одного біта зберігається на лінії дзеркала.

Гамільтонів шлях на n-кубі

Розглядайте кожен код як вершину n-вимірного гіперкуба; ребра з'єднують коди, що відрізняються на один біт. Послідовність коду Грея — це саме гамільтонів шлях: він відвідує кожну вершину один раз, рухаючись одним ребром за крок.

Застосування

  • Поворотні / позиційні енкодери — за крок змінюється один біт, тому неточне зчитування дає похибку щонайбільше на одну позицію замість дикого багатобітного збою.
  • Карти Карно — рядки й стовпці впорядковані за Греєм, тож сусідні клітинки відрізняються однією змінною.
  • Генетичні алгоритми та зменшення помилок — малі зміни значення відповідають малим змінам бітів.