Скрытое деление на ноль умеет «доказать», что 2 = 1
Ложные математические фокусы часто прячут запрещённую операцию внутри безобидного сокращения. Пусть a = b и оба числа не равны нулю. Умножим равенство на a, вычтем b² и разложим обе части на множители:
После сокращения одинакового множителя a − b будто бы получается a + b = b. Если взять a = b = 1, выйдет 2 = 1. Но условие a = b означает, что a − b = 0. Сократить этот множитель значит разделить обе части на ноль. Ошибка спряталась ровно в одном переходе.
Обычное сокращение законно потому, что ненулевой множитель имеет обратное число. У нуля обратного числа нет: не существует такого c, что 0 × c = 1. Поэтому из 7 × 3 = 7 × 5 можно сократить 7 и обнаружить противоречие 3 = 5, а из 0 × 3 = 0 × 5 нельзя заключить ничего о тройке и пятёрке.
Знаменатель нужно проверить до сокращения
При работе с дробью сначала выписывают значения, при которых знаменатель равен нулю. Они не входят в область определения исходного выражения, даже если затем нулевой множитель удалось сократить.
Равенство верно для всех x, кроме 1. Слева при x = 1 получается 0/0, а справа обычная формула x + 1 выдаёт 2. Сокращение упростило поведение рядом с точкой, но не вернуло удалённое значение в исходную функцию. На графике в месте x = 1 останется дырка.
По той же причине знаменатель рационального числа по определению должен быть ненулевым. Это условие встречается и в системе числовых множеств, и в практических действиях, которые выполняет калькулятор дробей. При решении уравнений ограничение лучше записать до преобразований, а после получения корней проверить их в исходном выражении.
Error, Infinity и NaN являются правилами программы
Компьютеру недостаточно знать, что операция математически не определена. Он должен решить, остановить вычисление, показать ошибку или сохранить специальное машинное значение, чтобы программа могла продолжить работу.
В арифметике JavaScript типа Number ненулевое конечное число, делённое на ноль, даёт специальное значение Infinity со знаком, а 0/0 даёт NaN, то есть «не число». Такое поведение прямо задано в стандарте ECMAScript 2024. Другой язык, тип данных или калькулятор может вместо этого остановиться с ошибкой.
Infinity и NaN здесь служат сигналами внутри вычислительной системы. Они помогают программе распространять сведения о переполнении или недопустимой операции, но не превращают 1/0 и 0/0 в обычные числовые равенства. Реакцию интерфейсов можно сравнить на обычном и научном калькуляторе.
Ноль ломает обратимость деления
Делить на ноль нельзя, потому что частное должно быть единственным числом и выдерживать обратную проверку умножением. Для ненулевого делимого такого числа не существует. Для 0/0 проверку проходит любое число, и выбрать одно без разрушения правил невозможно.
Бесконечность описывает рост значений рядом с нулём, а форма 0/0 в пределах предупреждает о необходимости дальнейшего анализа. В обычных дробях, уравнениях и сокращениях действует более практичное правило: найдите нули знаменателя заранее и не возвращайте их после преобразований. Именно эта короткая проверка отделяет настоящее решение от математического фокуса.