MakarovSuites
Українська
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Зв’язок і ліцензії

Math

Код, що лагодить сам себе

Шістнадцять бітів у квадраті, одинадцять із них — повідомлення: клацни по одному, і чотири лампи перевірок назвуть його адресу, а блок полагодить себе сам. Дві помилки блок упіймає, але виправити не зможе; три — і він збреше впевнено. Кожне твердження вичерпне: усі 32 768 одиночних помилок знайдено, усі 245 760 подвійних упіймано, усі потрійні виправлено хибно.

Код, що лагодить сам себе — Зображення з програми
Зображення з програми

Що відбувається

Шістнадцять бітів, викладених чотири на чотири. Одинадцять несуть повідомлення; чотири — перевірки парності на степенях двійки (1, 2, 4, 8), а п’ята на позиції 0 перевіряє весь квадрат. Кожна перевірка дивиться рівно половину блоку. Оскільки кожен індекс належить до свого поєднання перевірок, чотири відповіді разом — не сигнал тривоги, а АДРЕСА: додай за виключним АБО індекси всіх одиниць, і отримаєш число, написане під хибною плиткою. Клацни по другій — блок усе ще знає, що щось не так: шістнадцятий біт відділяє «виправити одну помилку» від «виправити одну і знати про дві». На третій код бреше: називає плитку з повною впевненістю і повертає хибне повідомлення. Відстань чотири купує одне виправлення і два виявлення, і нічого понад. Без шістнадцятого біта код ДОСКОНАЛИЙ у технічному сенсі: 2048 кодових слів, у кожного п’ятнадцять сусідів, і 2048 × 16 = 32 768 = 2¹⁵ рівно. Ця арифметика працює в ECC-пам’яті, у кожному QR-коді й на поверхні будь-якого оптичного диска; тому подряпаний компакт-диск усе ще грає.

Рівняння модуля
Рівняння
синдром:  s = XOR індексів усіх встановлених бітів;  s = 0 означає, що чотири перевірки узгоджені, а s ≠ 0 і є адресою хибного біта
перевірки:  перевірка p стежить за кожним індексом i з (i І p) ≠ 0;  p = 1, 2, 4, 8, а позиція 0 перевіряє весь квадрат
вердикт:  s = 0 і парність парна → ціле;  парність непарна → одна помилка в s (s = 0 означає сам біт 0);  s ≠ 0 і парність парна → дві помилки, виявлені й невиправні
досконалий код:  Hamming(15,11) має 2^11 = 2048 кодових слів, кожне з 15 сусідами на відстані одного переключення;  2048 × 16 = 32 768 = 2^15 точно - сфери радіуса один замощують простір, не залишаючи нічого
відстань:  d = 3 для Hamming(15,11), d = 4 з бітом усього квадрата;  виправлення t помилок потребує d ≥ 2t + 1, виявлення t потребує d ≥ t + 1
вичерпно:  32 768 однобітових випадків, 0 хибно локалізованих;  245 760 двобітових випадків, 0 пропущених і 0 хибно виправлених;  35 840 трибітових випадків, усі 35 840 "виправлено" хибно
швидкість коду:  11 бітів повідомлення на 16 надісланих = 68.75 %;  Hamming(7,4) 57.1 %, Hamming(31,26) 83.9 %, Hamming(63,57) 90.5 % - довші блоки є дешевшим страхуванням і більше втрачають через другу помилку

Інші експерименти

До каталогу
Басейни методу Ньютона — Зображення з програми

Math

Басейни методу Ньютона

Розфарбуй кожну стартову точку за коренем, до якого приходить метод Ньютона: при двох коренях межа — пряма, як довів Кейлі 1879 року, при трьох — фрактал, що належить усім трьом басейнам одразу. Потягни корінь і дивись, як рухаються площі: корінь, відтягнутий назовні, забирає МЕНШЕ вікна, а не більше.

Випадкові блукання і PageRank — Зображення з програми

Math

Випадкові блукання і PageRank

Слідкуйте за ймовірністю маси через напрямлений графік і порівняйте потужність ітерації з натовпом випадкових ходців. Телепортація може зробити PageRank збігатися до унікального розподілу. Порівняйте періодичний цикл з графіком, в якому відсутні вішаючі вершини витікають з маси.

Катастрофа збірки — Зображення з програми

Math

Катастрофа збірки

Тягни одну ручку — стан ковзає, доки його гілка не скінчиться, і клацає; потягнеш назад — тим самим шляхом не повернеться. Поверни другу ручку вище вершини, і клацання зникне зовсім: петля гістерезису там не мала, а рівно нульова. Ширина 4·(−a/3)^(3/2), висота стрибка 3·√(−a/3) — і те й інше перевіряється по картинці.