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

Деление на ноль (Дивайд бай зиро) — невозможное математическое действие.

 
Физически (или физиологически) пребывать в процессе деления на ноль вполне можно. Стой себе и дели, никто же законодательно не запрещал. Проблема обычно заключается в том, чтобы получить из этого процесса хоть какой-то обоснованный наукой результат (или создать потом Вселенную заново). Проще говоря, делить на ноль можно, разделить — нельзя.

Деление на ноль давно стало одним из классических образцов математического юмора, поскольку в среде математиков считается, что попытка представить получающуюся в итоге актуальную бесконечность (неотъемлемая часть успешного деления на ноль, в противоположность потенциальной бесконечности из теории пределов) ведёт к сумасшествию совершившего это. И нуля-то самого никто никогда не видел (даже математики), «а тут такоє»… Алсо, в обществе прикладных математиков пожелание «делись оно всё на ноль» является аналогом широко известного рецепта «ебись оно всё конём». Поскольку численность математик-кунов в среде компьютерщиков и истинных хакеров составляет лишь чуть менее, чем 42%, этот мем проник и туда, а с возникновением форчана обогатился представлением о том, что удачное деление на ноль неотвратимо вызывает не только безумие самого экспериментатора, но и создание сингулярной аномалии бесконечной массы в точке пространства, где было произведено удачное деление. Со всеми вытекающими последствиями.
Среди менее продвинутых товарищей деление на ноль упоминается в том же смысле, что и умножение на него же. Хуже того, в очень многих статьях этого сайта можно найти это словосочетание именно в ошибочном смысле, противоположном истинному. Это ещё один аргумент в пользу ввода матан-капчи. Или против неё.

Поле действительных чисел, помимо всего прочего, как и любое другое поле, является аддитивной группой, и ноль — нейтральный элемент этой группы. Множество ненулевых действительных чисел, снабжённое операцией умножения, является мультипликативной группой. Поэтому запиливая ноль в эту группу, мы превращаем её во что-то группой не являющееся, ибо понадобилось бы как минимум запилить туда обратный нулю элемент, который, очевидно, не может быть действительным числом, а если запилить НЁХ как обратку, то ещё больше проблем будет, так как остальные элементы действительные, и понадобилось бы прописать, как они взаимодействуют с обраткой, и даже если всё цивильно получится, то полученное множество уже не будет даже изоморфно привычному множеству действительных чисел и вообще не будет кольцом. Такие дела.
А настоящие быдломатематики знают, что если определить операцию деления на ноль, то тогда выходит, что все числа совпадают и равны 1, так что лучше на ноль не делить вовсе…
Действительно, для любого числа a верно: 
0 ∙ a = 0
Разделив на ноль получим: 
а = 1
Проблема лишь в том, что 0 нами тоже признан числом и мы только что доказали, что 
0 = 1, 
что по крайней мере не так с точки зрения умножения, ибо умножение на 1 дает исходное число,
а умножение на 0 дает 0. Впрочем, если все числа одинаковые, то это одно и то же.
Хотя есть теория, что все числа делятся (в прямом и переносном смыслах) на 0, 1 и прочие числа.
Действительно, пусть у нас есть два произвольных разных числа, "a" и "b", и мы умеем делить на ноль:
0 ∙ a = 00 ∙ b = 00 ∙ a = 0 ∙ bделим на 0, и получаетсяa = b
Таким образом «доказывается», что 2 + 2 = n. (где n — любое число)
(2+2)∙0 = 0n∙0 = 0(2 + 2) ∙ 0 = n ∙ 0делим на 0, и получается2 + 2 = n
Или, например, что 1=2:
х²—х²=х²—х²x(x—x)=(x+x)(x—x)x=2x1=2
"(спойлер: "")" 

А суть в некорректно поданном развязании. Допустим
0 • 0 = 00 ∙ a = 00 ∙ b = 00 ∙ a = 0 ∙ bразбиваем на(a ∙ 0) ÷ 0 = (a ∙ 0) ÷ (0 • 0) = (a ÷ 0) ∙ (0 ÷ 0)(b ∙ 0) ÷ 0 = (b ∙ 0) ÷ (0 • 0) = (b ÷ 0) ∙ (0 ÷ 0)после чего совершается деление на ноль приводящее к неопределённости (от слова «не определено»).
При этом следует отметить, что для получения запрета деления на ноль достаточно взять множество, определить на нём обратимую операцию сложения с нейтральным элементом (нулём), обратимую же операцию умножения со своим нейтральным элементом (единицей) и стандартную аксиому дистрибутивности (a(b+c)=ab+ac) о связи между этими операциями. То есть деление на ноль неопределено не только для чисел известным всем, но так же и в кольцах вычетов, и для матриц, и для комплексных чисел, и для любого другого множества с двумя обратимыми операциями, связанными дистрибутивностью. Неопределённость (как невозможность непротиворечиво определить операцию деления) возникает несмотря на наличие/отсутствие коммутативности, ассоциативности и прочих няшных свойств операций. Проблема в том, что если очень захотеть алгебру с делением на ноль (то есть с двумя обратимыми операциями, но без "распределительного закона"), как следствие получим, что в общем случае даже 0 • 0 может быть не равен нулю, и вообще теряется какой-либо смысл сложения и умножения.
Делить на бесконечно малую функцию можно, при этом получается бесконечно большая функция. То есть за результат деления на такой «ноль» можно принять предел. Засада в том, что этот предел может не существовать (получатся бесконечности разных знаков при стремлении к нулю с разных сторон, либо вообще какая-нибудь хуйня), и для каждой такой функции он свой. В общем, не ноль, а где-то рядом.
Например, 1/x стремится к +∞ при x→+0 и -∞ при x→-0. Однако, если по условиям задачи мы стремимся к нулю определенным образом (и предел существует), «деление» вполне дает результат. Например, время, за которое мы пройдем расстояние в 100 километров со скоростью v, равно 100/v. При устремлении v к +0 время, за которое мы пройдем вперёд сотню километров стоя, будет +∞.
Для тех, кому на ноль делить все-таки очень уж хочется, в нестандартном анализе придумали гипердействительные числа; так, например, существуют нестандартные числа не равные нулю, но меньшие всех стандартных действительных чисел по модулю. При этом, на ноль делить все равно нельзя. Школьные знания здесь не помогут.
В расширенной комплексной плоскости делить на ноль можно. Это связано с тем, что в ней бесконечность — не предельно-недостижимое значение, а вполне конкретная точка, соответствующая точке (0, 0, 1) в стереографической проекции. Правда, при этом подобное множество внезапно перестает быть полем, но это мало кого волнует.
Деление — это не атомарная операция, а макрос — взятие обратного по умножению от делителя и умножение на делимое. Например, обратный двойке по умножению — это 2, 3/2 = 2 ∙ 3 и т. д. Операция взятия обратного по умножению определена для всех чисел, кроме нуля (говорят — нуля по сложению). Деление на ноль на самом деле не запрещено, эта операция просто не определена, как перемножение паровоза на самовар. Так-то.
Отсутствие обратного элемента для нуля это ещё полбеды. В целых числах тоже нет обратного, скажем, к 42, но это не мешает найти его в рациональных (1/42). Главная проблема здесь в том, что ноль является делителем нуля, а значит на него нельзя сокращать: из тождества «0 ∙ x = 0 ∙ y» ни разу не следует, что «x = y». Причём, если в хороших числовых системах такие корчи происходят только с нулём, то уже в седенионах или ещё проще функциях на отрезке корчи случаются на каждом шагу: вы ничего не можете сказать о функциях, для которых f(x) ∙ g(x) = 0.
Если ввести в Вольфрам 1/0, то получим ~∞, а если 0/0 — INDETERMINATE.
На запрос x=(0/0=1)*1 он отвечает… x=0 (он воспринимает сабж как логическое выражение по типу языка С и таки да: 0/0 не равно единице, что он и возвращает нулем…булевым)
На самом деле, вопрос о делении на ноль вещественного числа (ну или там мнимого, в общем, отличного от нуля) не имеет смысла. Почему-то большинство людей воспринимают ноль как какое-то очень-очень маленькое, но все-таки имеющее невообразимо ничтожное значение число. Тащемта, да, но нет. Если мы имеем дело с теорией пределов, то 0 — это не ничто и не отсутствие значения, а неопределенная бесконечно малая величина. Вследствие этого операция 0/0 и не имеет смысла, так как оба операнда представляют из себя неопределенные величины, а следовательно, нельзя сделать вывод об их равенстве или неравенстве.
Что тогда получается? Допустим, мы делим 8 на 2. При этом мы считаем, сколько нужно взять двоек, чтобы получить восемь. Ответ очевиден — двойку надо взять четыре раза. А если мы делим 8 на 0, то нам нужно посчитать, сколько нужно взять нулей, чтобы получить восемь. Ответ — да нисколько. Сколько бы мы нулей не взяли, хоть сто миллионов, хоть бесконечность, хоть сто миллионов бесконечностей, мы никогда не получим вещественного числа. Из ничего нельзя получить что-то вещественное, как ни старайся. Короче, в человеческом языке и сознании не существует терминов для обозначения количества нулей, которые могут превратиться в восьмерку, или например 9000. Именно поэтому математики и договорились не ебать мозга друг другу и считать этот вопрос бессмысленным.
Зато ноль на ноль умножать можно вполне! Сколько раз нужно взять ноль, чтобы получить ноль? Да сколько угодно! 0*8=0. 0*100500=0, не так ли? Вот, поэтому неопределенность типа 0/0 может равняться чему угодно!
В программировании числа целого типа (попытаться) поделить на ноль в принципе можно, но получается какая-то хуита: процессор x86 при попытке выполнить операцию целочисленного деления на ноль формирует особый случай (исключение) с номером 0, вектор которого также находится по адресу 0. Другими словами, процессор славное действие деления на ноль до конца не доводит, а перескакивает в другое место, обычно сообщая юзеру о внезапном просирании всех полимеров. На самом деле, поскольку деление целых чисел осуществляется на микропрограммном уровне как вычитание со сдвигом и при этом признаком окончания процесса является обнуление остатка от делимого, нулевой делитель означает бесконечное число циклов с одинаковым ненулевым результатом. Ч.т.д. А вот и нет. Делимое списывается в остаток и возвращается −1. Так-то!
Зато числа с плавающей запятой делить на ноль можно невозбранно. При аффинном представлении бесконечностей получается плюс бесконечность (+INF) или минус бесконечность (-INF) — зависит от знака делимого числа. При проективном представлении — беззнаковая бесконечность (INF) в любом случае. Самое интересное происходит при делении на ноль самого ноля: результатом будет специально зарезервированное для подобных ситуаций (вроде извлечения квадратного корня из отрицательного числа или умножения нуля на бесконечность) значение «Не Число» (NaN, Not a Number).
Альзо, в одной книжке по процессорам Intel сказано, что NaN и Inf — вполне обычные числа. Если не обращать внимания на исключения, то с ними можно производить операции: NaN + p = NaN, NaN*p = NaN и т. д. и т. п., однако p = 1, так как корень нулевой степени из p таки равен единице (конечно же, при p != 0).
В КофеСкрипте при делении числа на ноль возвращается «Infinity».
Также, в лаконичном языке программирования J сабж даёт бесконечность, обозначаемую как «_». Адепты данного языка ехидно заявляют, что ошибка при делении на ноль возникает исключительно в головах быдлокодеров, пытающихся освоить мозголомный синтаксис J.
Если попытаться с помощью образной логики изобразить такой математический процесс как деление, то получится раздача неких предметов неким субъектам. Например: 10 делим на 2 = мать раздаёт 10 яблок двум своим детям поровну, и у каждого в руках оказывается по 5 штук. Поэтому с точки зрения образной логики «деление на ноль» это «отсутствие деления». Скажем, 10 : 0 это "10 яблок, которые никто никому не раздаёт". Деление же ноля на ноль это «пустая корзина, в ней нет ни одного яблока, вот потому их никто никому не раздаёт».
Осталось только объяснить, почему «10 ∙ 0» равно нулю, а не отсутствию умножения. Добавим правило «от перестановки мест множителей итог не меняется» и получим «ноль, повторённый десять раз», а он равен нулю.
Если 10 яблок раздать 0 человек(не дать никому), то это можно сделать(не дать никому) сколь угодное число раз, поэтому результат будет, как при использовании пределов, бесконечность.
Аналогично можно представить, что мы можем 10 раз взять 0(ничего), либо 0(ни разу) (не)взять по 10, итог один(sic!) - 0.
Алсо, если считать на палочках (как в детском саду считали), то в такой арифметике будут не все операции деления и нельзя будет вычесть из меньшего числа большее — поскольку нет дробных палочек и отрицательных палочек тоже нет.
 
 

Менее известный мем. Имеется в виду то, что если число на ноль умножить, то получится ноль (то есть ничего). Пример с этого вашего плейграунда: «Извините, а как можно в Готике воскрешать героев, а то кореш-манчкин всех неписей на ноль помножил?»