Деление на ноль

Деление на ноль в математике — деление, при котором делитель равен нулю. Такое деление может быть формально записано как , где — делимое.
В арифметике
В арифметике с вещественными числами данное выражение не имеет смысла, так как:
- при Шаблон:Math не существует числа, которое при умножении на Шаблон:Math даёт Шаблон:Math, поэтому ни одно число не может быть принято за частное Шаблон:Math;
- при Шаблон:Math деление на ноль также не определено, поскольку любое число при умножении на Шаблон:Math даёт Шаблон:Math и может быть принято за частное Шаблон:Math.
Исторически одна из первых ссылок на математическую невозможность присвоения значения Шаблон:Math содержится в критике Джорджа Беркли исчисления бесконечно малых.
В алгебре
Деление на ноль недопустимо во многих алгебраических структурах (например, в полях, кольцах). Однако понятие кольца можно расширить так, чтобы деление на ноль было возможным. Получившаяся структура называется колесо.
Делимость
Шаблон:Основная статья В то же время, согласно определению делимости целых чисел, если для некоторого целого числа и целого числа существует такое целое число , что , то говорят, что число делится нацело на (обозначается ) или что делит (обозначается ).
В соответствии с этим определением выполняются следующие свойства:
- Любое целое число является делителем нуля:
- ,
- и частное (при ) равно нулю.
- На ноль делится только ноль:
- ,
- причём частное в этом случае не определено.
Логические ошибки
Поскольку при умножении любого числа на ноль в результате мы всегда получаем ноль, при делении обеих частей выражения Шаблон:Math, верного вне зависимости от значения Шаблон:Math и Шаблон:Math, на Шаблон:Math получаем неверное в случае произвольно заданных переменных выражение Шаблон:Math. Поскольку ноль может быть задан не явно, но в виде достаточно сложного математического выражения, к примеру в форме разности двух значений, сводимых друг к другу путём алгебраических преобразований, такое деление может быть достаточно неочевидной ошибкой. Незаметное внесение такого деления в процесс доказательства с целью показать идентичность заведомо разных величин, тем самым доказывая любое абсурдное утверждение, является одной из разновидностей математического софизма[1].
В информатике
В программировании, в зависимости от языка программирования, типа данных и значения делимого, попытка деления на ноль может приводить к различным последствиям. Принципиально различны последствия деления на ноль в целой и вещественной арифметике:
- Попытка целочисленного деления на ноль всегда является критической ошибкой, делающей невозможным дальнейшее исполнение программы. Она приводит либо к генерации исключения (которое программа может обработать сама, избежав тем самым аварийной остановки), либо к немедленной остановке программы с выдачей сообщения о неисправимой ошибке и, возможно, содержимого стека вызовов. В некоторых языках программирования, например, в Go, целочисленное деление на нулевую константу считается синтаксической ошибкой и приводит к аварийному прекращению компиляции программы.
- В вещественной арифметике последствия могут быть различным в разных языках:
- генерация исключения или остановка программы, как и при целочисленном делении;
- получение в результате операции специального нечислового значения. Вычисления при этом не прерываются, а их результат впоследствии может быть интерпретирован самой программой или пользователем как осмысленное значение или как свидетельство некорректности вычислений. Широко используется принцип, согласно которому при делении вида Шаблон:Math, где Шаблон:Math — число с плавающей запятой, результат оказывается равен положительной или отрицательной (в зависимости от знака делимого) бесконечности —
+INFили−INF, а при Шаблон:Math в результате получается специальное значение NaN (сокр. от Шаблон:Lang-en — «не число»). Такой подход принят в стандарте [[IEEE 754-2008|IEEEШаблон:Nbsp754]], который поддерживается многими современными языками программирования.
Случайное деление на ноль в компьютерной программе порой становится причиной дорогих или опасных сбоев в работе управляемого программой оборудования. К примеру, 21 сентября 1997 года в результате деления на ноль в компьютеризированной управляющей системе крейсера USS Yorktown (CG-48) Военно-морского флота США произошло отключение всего электронного оборудования в системе, в результате чего силовая установка корабля прекратила свою работу[2][3].
См. также
Примечания
- ↑ Шаблон:Книга
- ↑ [1]Шаблон:Wayback Sunk by WindowsШаблон:NbspNT // Wired News. 1998-07-24.
- ↑ Шаблон:Cite web