Ошибка в 0,343 секунды: почему Patriot не спас 28 солдат ⏳
Ошибка в 0,343 секунды: почему Patriot не спас 28 солдат ⏳ Это одна из самых громких трагедий из-за погрешности в коде: она унесла жизни людей, хотя техника формально работала. Что случилось 25 февраля 1991 года иракская ракета Scud ударила по казарме армии США в Дахране (Саудовская Аравия). Погибли 28 солдат, около 100 получили ранения. Зенитно-ракетный комплекс Patriot, развёрнутый рядом, не выпустил перехватчик. Математическая ловушка Patriot отслеживал время с момента включения. Десятые доли секунды хранились как целые числа, а для расчётов преобразовывались в 24-битное дробное число. Число 0,1 в двоичной системе — бесконечная дробь, поэтому компьютер округлял его при каждом шаге. По отдельности это микроскопическая неточность. Время работает против Система в Дахране работала без перезагрузки около 100 часов. За это время погрешность выросла до 0,343 секунды. Для баллистической ракеты такое расхождение — смещение в сотни метров. Радар искал Scud не там, где она была, — и цель оказалась «недействительной». Урок простой: чем дольше работает система, тем опаснее даже минимальные ошибки округления. Инженеры переписали расчёты, но для 28 солдат это было уже неважно. Как избежать таких ошибок в системах, от которых зависят жизни? 🤔 — 💙 📮 Больше интересного в VK