На самом деле в логике не может быть невозможных операций, которые бы не имели корректного однозначного ответа. Это свойство полноты системы, а логика единственная полная система (Гедель).
Отсюда уже следует, что если вы вдруг получаете неопределенность, как в случае с делением на ноль, например, сигулярность или бесконечность, то это означает что вы где то ошиблись. Ну не бывает этого в логике и быть не может по определению понятия логики.
В данном случае проблема с пониманием что же такое ноль. Достаточно правильно определить это понятие, и все сразу встает на места. Ноль следует рассматривать как начало координат какой либо системы. Любой системы, в т.ч. и сам числовой ряд. Проще всего использовать для объяснения нуля декартову систему координат, где понятие нуля довольно очевидно.
И тут нужно отдавать себе отчет, что сама система декарта тоже не висит в воздухе и у нее есть свои параметры, например цена деления, углы 90 градусов между осями, пределы по осям, указывающие насколько велика эта система. Если все это жестко определено, то любые логические действия в системе будут иметь однозначные результаты, в т.ч. и такие как деление на ноль.
Обычно, математики, рисуя ту же декартову систему не ставят пределов по осям и воображают линии бесконечно продолжающимися. Тут сразу ошибка. Не надо путать процесс продолжения осевых линий в ходе расширения системы и статический процесс, где система определена по всем параметрам полностью. Расширять систему можно вечно, но не бесконечно, потому что для расширения системы нужен ресурс. Банально вот кончился у вас лист бумаги и кончилось расширение вашей системы. Даже если вы рисуете декарты в воображении в своей голове, то предел наступит тупо из за возможностей вашей памяти вмещать все это в себе.
Ничто не бесконечно.
И то же самое в реальном трехмерном измерении, оно тоже не бесконечно и имеет предел, даже если считать что вселенная расширяется с громадной скоростью и мощность ее увеличивается. Угнаться за этим расширением невозможно и в каком то смысле для человека можно считать, что оси уходят в бесконечность именно поэтому, но ФАКТИЧЕСКИ, в каждый момент времени все конечно.
А если этими расчетами займется нечто извне, и имеющее гораздо большую скорость обработки информации, чем скорость расширения системы? Тогда он упрется в предел и еще будет ждать, пока система расширится еще на одну цену своего деления. И никакой бесконечности для него тут не будет, так что в абсолюте, с позиции чистой логики, ни о какой бесконечности не может быть и речи и ВСЕГДА нужно ставить для системы отсчета пределы, за границы которых вы не будете переходить. И вот тогда у вас никогда не будет проблем.
НЕ делать этого нельзя с логической точки зрения, иначе вы не имеете права пользоваться полнотой логики в системе и рано или поздно упретесь в противоречие или необъяснимое. Вот как в примере с операциями с нулем, при делении получается неопределенность, потому что предел отсутствует у продолжительности натурального ряда (отложенного например на осях декарта).
Поэтому давайте сразу поставим предел мощности системы и ограничим натуральный ряд например до 16, а минимальную цену деления сделаем 0,1мм, и после этого займемся корректными операциями с нулем. Еще раз подчеркну, мы ОБЯЗАНЫ устанавливать пределы, это требует логика для того чтобы мы имели право пользоваться ее свойствами в ПОЛНОЙ мере, пользоваться ПОЛНОТОЙ логики как системы.
Вернемся к декартам и свойствам системы: размерность и цена деления. Как вы думаете ГДЕ хранятся эти свойства системы?
Вы можете сказать что в вашем воображении, в памяти. Если говорить математическим языком, то это хранится в дополнительных измерениях, которые по сути являются дополнительными смыслами у чисел.
То, что числа несут в себе дополнительное содержимое кроме обозначения количества, стало известно относительно недавно и на этой гипотезе доказана теорема Ферма между прочим.
Так вот в нуле как раз и находятся данные о параметрах системы и ценой деления, центром которой этот ноль и является.
Т.е. нужно понимать, что ноль это системный объект, количество в нем отсутствует и там пусто, но зато в доп измерениях содержатся параметры системы. И если вы вздумали делать логические или арифметические операции с нулем, то вы их делаете со всеми системными свойствами.
Т.е. если вы умножили 4 на 0, то вы умножили 4 минимальных цены деления на 1 цену деления линейки. Если у вас цена деления была например 0,1мм, то вы получили новую цену деления для линейки 0,4.
Вы просто промасштабировали систему в меньшую сторону, вот что делает умножение на ноль.
Поскольку математика не определяет минимальную цену деления (а лишь предполагает что она бесконечно мала), то новая цена деления получится в 4 раза больше этой бесконечно малой величины, ну или все равно округленно 0
Для данной системы 4*0=0,4мм
Сначала вы СТЕРЛИ всю разметку на линейке...поэтому с математической точки зрения умножение на ноль любого числа дает ноль. Вы тупо этой системной операцией уничтожили разметку (а новую не нанесли).
НО, на этом дело то не кончилось для логики. Оно кончилось только для матлогики. В ней умножение на ноль уничтожило систему, обнулило ее.
Признайтесь, в школе вам не казалось странным, что умножение 5 яблок на нисколько яблок лишает вас яблок совсем? С какой стати, не спрашивали учителя? Что за сила такая в нуле, что аннигилирует числа? Ведь за ними всегда стоят реальные объекты, так нас учит физика и здравый смысл...и он не обманывает.
С точки зрения логики, ноль сам по себе является унарной ФУНКЦИЕЙ переназначения (перезаписи) системных параметров, при этом число и функция рядом стоящая определяет что следует делать. (кстати, на булевском языке ноль является функцией инверсии). Так что в примере 4*0 две функции: стирание и запись. В любом случае чтобы положить бегемота в холодильник, сначала нужно вытащить оттуда верблюда.
Матлогика не предполагает делать 2 операции, потому что ноль для них не является функцией, поэтому только вытаскивает верблюда, на чем все и заканчивается для математиков.
ОДНАКО продолжим.
Если вы разделили 4 на 0, то новая цена деления у вас будет 40, а не бесконечность. Т.е делением на ноль вы промасштабировали систему в большую сторону. Да, вот так все просто.
Однако, из за того что математики просто срать хотели на то, что при булевских преобразованиях ну никак не получается поделить что то на ноль или умножить (получается чушь как только вы начинаете использовать реальные двоичные функции на чипах).
Ну вот смотрите, давайте умножим число 7 на 0
111*000 если перевести на двоичный язык.
Умножение согласно правилу вывода функции, это применение функции сложения между первыми множителями, число которых равно числу второго множителя. Т.е. число 111 надо сложить с 111 нисколько раз. Как это сделать ФИЗИЧЕСКИ на сумматорах?
Ну подал ты на первый вход сумматора двоичное 111, и на второй вход 111, а дальше что? Какой командой сложить нисколько раз? Это ведь отрицание команды! В итоге на выходе сумматора результата просто НЕТ. Ему просто неоткуда взяться. Вот и приходится во всех калькуляторах и компьютерах ПОДСТАВЛЯТЬ ответ 0 не прибегая к логическому расчету.
И та же история с делением на ноль. Т.е. прежде чем любой компьютер начнет выполнять математические действия между числами, идет дефолтная проверка, а не является ли число нулем, и если да, то идет тупо подстановка "правильного" значения. Выше в тексте написано подробно насколько оно правильно.
И стоит отдать должное технарям-физикам, которые создавали сами эти чипы, они понимали что так не годится и что рано или поздно операции с нулем таки придется выполнять корректно, а не подставлять значения. Поэтому в процессорах есть специальная подпрограмма, которая определяет, как именно следует осуществлять математические операции с нулем. В эту подпрограмму можно залезть и написать собственный способ обработки математических операций процессорного АЛУ с нулем.
Вообще, с нулем большие проблемы у программистов тоже. Например в ПО Excel существует аж 7 разных нулей, что согласитесь, избыточно и прямо указывает на то, что что то там совсем не так и заплатка на заплатке сидит. Бритва Оккама там поработала бы знатно. И все из за неверной трактовки математиками нуля.
Как я уже говорил, логически, это функция инверсии, и она активно применяется в вычислениях, например при логическом вычитании.
Дело в том, что двоичная логика имеет в своем распоряжении только сумматор. Вычитатора нет. Это связано с невозможностью физического поворота времени вспять. Фарш нельзя провернуть назад. Вот и в двоичной логике поэтому невозможны обратные операции, только сложение.
Но как же делается вычитание в двоичной логике? А очень просто...применяют операцию с нулем. Т.е. делают побитную инверсию числа, называя это созданием допкода. Но его истинный смысл в том, чтобы вывернуть системные установки логики наизнанку. Если раньше 1 была истина, а 0 ложь, то при побитной инверсии критерии системы меняются на противоположные. И вот если уже с допкодом числа делать обычную операцию сложения, а полученный результат снова побитно инвертировать, то и получится вычитание :) Хитро, не правда ли?
Но математики провертывая эту аферу с допкодом не понимают что имеют дело с функцией нуля...ИНВЕРСИЕЙ.
Т.е. на самом деле ноль, это не 000, а три инверсии.
Если вы до сих пор не верите в то что ноль это функция инверсии, приведу вам простой пример с математической аксиомой.
N^0=1
Перед вами математическая аксиома (любое число в нулевой степени равно 1), А еще такие казусы в математике называются невыводимыми истинами. Кстати то, что числа имеют дополнительные размерности, при помощи которых доказана теорема Ферма, тоже к ним относится. Аксиома и все. Ни один математик не сможет вам объяснить почему N^0=1
Степень, согласно правилу вывода степенной функции, это применение функции умножения между основателями степени, число которых равно числу показателя степени. Т.е. число 111 надо умножить с 111 нисколько раз. Это точно такой же невыполнимый бред, как и в прошлый раз, и компьютер естественно подставляет в ответ 1 не вычисляя, просто потому что это правильный ответ. Но как он получился?
Все просто:
Если знать что ноль, это функция инверсии, то применяем его в правило вывода степенной функции изменит само правило и получим:
Если показатель степени 0, то степенная функция это ДЕЛЕНИЕ между основателями степени, число которых равно числу показателя степени.
И поскольку число показателя степени отсутствует вовсе, потому что ноль это вообще не число, то делить по умолчанию нужно один раз.
Т.е. число 111 надо разделить на 111
Вот и получается что N^0=N/N=1
Некорректные операции с нулем между прочим тормозят развитие искусственного интеллекта и вообще фундаментальную математику как науку.