Найти тему
Математика не для всех

Как американский крейсер заглох посреди океана из-за деления на "0"

Приветствую Вас, уважаемые Читатели! С детства Вас учили, что делить на ноль нельзя, хотя уже в студенчестве на математическом анализе понимаешь, что не все так однозначно.

Американский писатель Чарльз Сэйфе проблеме деления на ноль посвятил целую книгу, где собраны различные удивительные и иногда трагические факты, которые произошли по причине игнорирования этого базового правила математики.

В качестве одного из примеров автор приводит событие, которое произошло с американским крейсером Йорктаун .

"Йорктаун" успешно служил ВМС США с 1984 года без серьезных инцидентов во время нескольких боевых операций; однако в рамках программы модернизации, получившей название "Умный корабль", его системы управления были модифицированы в 1996 году для использования сети ПК под управлением Windows NT 4.0. Система была разработана и построена дочерней компанией Litton Industries и состояла из 27 клиентских ПК.

21 сентября 1997 года Йорктаун был на учениях побережья Кейп-Чарльза, штат Вирджиния, когда член экипажа начал устранять неполадки с закрытым топливным клапаном, состояние которого в "умной системе" не обновлялось: компьютер показывал, что клапан открыт.

2 февраля 1988 года американские корабли — ракетный крейсер «Йорктаун» и эсминец «Кэрон» — вторглись в советские территориальные воды в районе Севастополя и направились вдоль побережья Крыма в сторону Ялты. На предупреждающие сигналы американцы не реагировали. Советский сторожевой корабль «Беззаветный» вынужден был выполнить «навал». Источник: https://avatars.mds.yandex.net/get-zen_doc/1718701/pub_5fc8b5d652642f33b9671335_5fc8b69d52642f33b9692b61/orig
2 февраля 1988 года американские корабли — ракетный крейсер «Йорктаун» и эсминец «Кэрон» — вторглись в советские территориальные воды в районе Севастополя и направились вдоль побережья Крыма в сторону Ялты. На предупреждающие сигналы американцы не реагировали. Советский сторожевой корабль «Беззаветный» вынужден был выполнить «навал». Источник: https://avatars.mds.yandex.net/get-zen_doc/1718701/pub_5fc8b5d652642f33b9671335_5fc8b69d52642f33b9692b61/orig

Техник попытался выполнить сброс топливного клапана, введя значение "0" в поле базы данных. Это привело к попытке разделить на 0 и последующему переполнению буфера. Проверка этой операции просто не была предусмотрена программистами!

Поскольку другие интеллектуальные корабельные системы зависели от доступности базы данных по локальной сети, компоненты, управляющие двигателем, начали выходить из строя, пока корабль не остановился полностью! Экипаж смог устранить неполадки и перезапустить системы корабля через два часа и сорок пять минут! Спасибо за внимание!

  • TELEGRAM и Вконтакте- там я публикую не только интересные статьи, но и математический юмор и многое другое.