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

avatar slipper120

1598

38

DaniCh

Пользователь

Регистрация: 16.09.2011

Сообщения: 8929

Рейтинг: 2624

DaniCh

Регистрация: 16.09.2011

Сообщения: 8929

Рейтинг: 2624

Функция деления вычитаем описывается, следовательно если от 2 отнять 0 будет 2

Спойлер: доказательство

Частное от деления можно представить как количество вычитаний делителя из делимого до тех пор, пока делимое сохраняет знак. Это дало возможность организовать деление путем повторения последовательности вычитаний с проверкой знака делимого. Если произошла перемена знака, то нужно уменьшить счетчик числа вычитаний на единицу, а делимое и делитель сложить. Теперь делимое будет равно остатку, а счетчик числа вычитаний равен частному. Так делили на ранних микропроцессорах Intel (i4004, i8080), которые еще не поддерживали команду деления.
Пример: делим 125 на 11
125 - 11 = 114 результат >0 частное = 1
114 - 11 = 103 результат >0 частное = 2
103 - 11 = 92 результат >0 частное = 3
92 - 11 = 81 результат >0 частное = 4
81 - 11 = 70 результат >0 частное = 5
70 - 11 = 59 результат >0 частное = 6
59 - 11 = 48 результат >0 частное = 7
48 - 11 = 37 результат >0 частное = 8
37 - 11 = 26 результат >0 частное = 9
26 - 11 = 15 результат >0 частное = 10
15 - 11 = 4 результат >0 частное = 11
4 - 11 = -7 результат <0 частное = 12 -1 = 11 остаток = -7+11 = 4 результат получили за 12 вычитаний
проверяем: 125 / 11 = 11,363636363636363636363636363636
остаток: 0,363636363636363636363636363636 * 11 = 3,999999999999999999999999999996 = 4
но это не самый быстрый способ деления, количество вычитаний будет расти с ростом делимого и уменьшением вычитаемого. Вот так можно увеличить скорость деления -- из делимого вычитаем делитель, умноженный на степень двойки. Произведение числа на 2ⁿ эквивалентно сдвигу этого числа на n разрядов влево. Если знак результата положительный, то нужно прибавить 2ⁿ к частному, если знак результата отрицательный – частное не увеличивается. Когда знак результата меняется на отрицательный, вычитание заменяется сложением. Так повторяется при уменьшающихся степенях двойки до тех пор, пока не будет достигнута степень, равная нулю. Остатком считается последний положительный результат.
Опять разделим 125 на 11. Делитель укладывается в байт (11<255), поэтому начинаем с 2^7. В начале вычисления частное всегда равно 0:
125 – 11 * 2^7 = –1283
–1283 +11 * 2^6 = –579
–579 +11 * 2^5 = –227
–227 +11 * 2^4 = –51
–51 + 11 * 2³ = 37 результат положительный, поэтому складываем 2³ с частным, частное равно 8+0=8
37 – 11 * 2² = – 7
–7 + 11 * 2¹ = 15 результат положительный, поэтому складываем 2¹ с частным, частное равно 2+8=10
15 –11 * 2º = 4 результат положительный, поэтому складываем 2º с частным, частное равно 1+10=11, остаток равен 4
результат получили за 8 вычитаний

HCM

Пользователь

Регистрация: 30.05.2013

Сообщения: 1042

Рейтинг: 294

HCM

Регистрация: 30.05.2013

Сообщения: 1042

Рейтинг: 294

К чему опрос? 2/x -> +∞ при x -> 0 сверху и -∞ при стремлении снизу. Короче все 3 ответа могут подойти в какой-то мере, смотря как повернуть.
Просто выражение 2/0 лишено смысла и значения, поэтому, вероятно, автор намекал на 3-й вариант.

slipper120

Пользователь

Регистрация: 03.06.2015

Сообщения: 7137

Рейтинг: 2606

slipper120

Регистрация: 03.06.2015

Сообщения: 7137

Рейтинг: 2606

HCM сказал(а):
К чему опрос?
Нажмите, чтобы раскрыть...

узнать мнения форума и их знания почему на ноль делить нельзя

qwerqwer1

Пользователь

Регистрация: 17.12.2014

Сообщения: 462

Рейтинг: 211

qwerqwer1

Регистрация: 17.12.2014

Сообщения: 462

Рейтинг: 211

Auditore2011 сказал(а):
В программировании попытка разделить число с плавающей точкой на ноль приведёт к +INF или −INF (Стандарт IEEE 754), однако, в зависимости от языка программирования и типа числа́ (например, целое число), которое делят на ноль, может: сгенерировать исключение, сообщение об ошибке, остановку выполняемой программы, сгенерировать положительную или отрицательную бесконечность, или привести к специальному нечисловому значению (NaN).
Неопределенность.
Нажмите, чтобы раскрыть...

inf, nan или exception - это только оболочка языков высокого уровня. Если брать фундаментальное программирование, то приведёт к зацикливанию. Короче на ноль деление на ноль всё-равно приводит к неопределённости.

Rammilled

Пользователь

Регистрация: 26.01.2016

Сообщения: 11782

Рейтинг: 4919

Rammilled

Регистрация: 26.01.2016

Сообщения: 11782

Рейтинг: 4919

img
qwerqwer1 сказал(а):
неопределённости
Нажмите, чтобы раскрыть...

неопределенность - тоже в своем роде число. Деление на ноль не дает числа, ничего не дает. Чтобы разделить пирог на 0 частей, его нужно уничтожить, в итоге мы не получаем 0, мы получаем дырку. В опросе нет правильного варианта ответа

qwerqwer1

Пользователь

Регистрация: 17.12.2014

Сообщения: 462

Рейтинг: 211

qwerqwer1

Регистрация: 17.12.2014

Сообщения: 462

Рейтинг: 211

Rammilled сказал(а):
неопределенность - тоже в своем роде число. Деление на ноль не дает числа, ничего не дает. Чтобы разделить пирог на 0 частей, его нужно уничтожить, в итоге мы не получаем 0, мы получаем дырку. В опросе нет правильного варианта ответа
Нажмите, чтобы раскрыть...

Это что-то не связанное с математикой.

RavenDark

Пользователь

Регистрация: 06.08.2015

Сообщения: 64

Рейтинг: 76

RavenDark

Регистрация: 06.08.2015

Сообщения: 64

Рейтинг: 76

Rammilled сказал(а):
неопределенность - тоже в своем роде число. Деление на ноль не дает числа, ничего не дает. Чтобы разделить пирог на 0 частей, его нужно уничтожить, в итоге мы не получаем 0, мы получаем дырку. В опросе нет правильного варианта ответа
Нажмите, чтобы раскрыть...

Неопределенность не число, а выражение, не имеющее смысла. То, что правильного ответа нет - это верно, т.к. неопределенность мы не можем считать результатом операции, как таковым. Ну и операция деления на ноль, в принципе, неосуществима.

h1kz

Пользователь

Регистрация: 02.03.2013

Сообщения: 40

Рейтинг: 28

h1kz

Регистрация: 02.03.2013

Сообщения: 40

Рейтинг: 28

Клоз тему

slipper120

Пользователь

Регистрация: 03.06.2015

Сообщения: 7137

Рейтинг: 2606

slipper120

Регистрация: 03.06.2015

Сообщения: 7137

Рейтинг: 2606

h1kz сказал(а):
Клоз тему
Нажмите, чтобы раскрыть...

очень интересное видео, но на самом деле делить на ноль запретили не просто так, а причина в механических калькуляторах

flatte

Пользователь

Регистрация: 12.01.2013

Сообщения: 218

Рейтинг: 197

flatte

Регистрация: 12.01.2013

Сообщения: 218

Рейтинг: 197

Уже был правильный ответ в теме.
2/0 нельзя ни к чему приравнять(неопределённость)
Но предел этого выражения можно
lim (x->0) 2/x = бесконечность

ITWispa

Пользователь

Регистрация: 30.07.2014

Сообщения: 1060

Рейтинг: 452

ITWispa

Регистрация: 30.07.2014

Сообщения: 1060

Рейтинг: 452

Спасибо за рарку <3

slipper120

Пользователь

Регистрация: 03.06.2015

Сообщения: 7137

Рейтинг: 2606

slipper120

Регистрация: 03.06.2015

Сообщения: 7137

Рейтинг: 2606

ITWispa сказал(а):
Спасибо за рарку <3
Нажмите, чтобы раскрыть...

В начале не понял, а потом решил чекнуть тему с халявной раркой:blush:
Не за что

Chokolate_eye

Пользователь

Регистрация: 26.11.2015

Сообщения: 4013

Рейтинг: 2985

Chokolate_eye

Регистрация: 26.11.2015

Сообщения: 4013

Рейтинг: 2985

Динозавры как-то тоже такую темку на д2ру создали, ничем хорошим это не кончилось.
П.С. ответ 42

pochemyzamenya

Пользователь

Регистрация: 25.02.2016

Сообщения: 4457

Рейтинг: 4066

pochemyzamenya

Регистрация: 25.02.2016

Сообщения: 4457

Рейтинг: 4066

правильный ответ - неопределенность