Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему -10/3=-4, а -10%3=2? Почему в математике -10/3=-4, а остаток от деления равен двум?

aoaoaoaooa Мастер (1875), закрыт 9 лет назад
Лучший ответ
Кривой Гуру Ученик (235) 9 лет назад
Потому что остаток не может быть отрицательным.

Если -10 / 3 = -3 то:
-10 = -3 * 3
-3 * 3 = -9
-10 - (-9) = -1 - Ошибка. Остаток отрицательный.

Но
-10 = -3 * 4
-3 * 4 = -12
-10 - (-12) = 2 - Верно. Остаток положительный и не больше делимого.
aoaoaoaooaМастер (1875) 9 лет назад
Спасибо большое.
Максим СидоровПрофи (525) 2 года назад
-10/3=-3 целых же, откуда -4 ?
Максим Сидоров, нет, целых -4, так как при умножении -3 на 3 мы получим число, которое больше, чем -10
Остальные ответы
Mikhail Levin Искусственный Интеллект (615712) 9 лет назад
тестирируешь генератор бреда?

вообще-то это даже не математика, а скорее программирование, как заложились разработчики компиляторов.
aoaoaoaooaМастер (1875) 9 лет назад
"Математикам стоит обратить внимание на то, что деление и подсчёт остатка для отрицательных чисел работает в C++ «неправильно». Если в C++ мы разделим отрицательное число на положительное, например, посчитаем результат операции −7 / 3, то получим −2. Фактически в C++ отрицательное число берётся по модулю, делится, а затем к результату приписывается минус. "
Со своими знаниями математики я бы -7 на 3 поделила нацело, получив именно минус два, а в остатке - 1. но, видимо, я чего-то не знаю.
Mikhail Levin Искусственный Интеллект (615712) вообще-то я никогда не встречал в математике ни слова про делимость применительно к отрицательным числам. Но логичнее было бы делать не как в Си. что-то я всю память перелопатил, была стандартная функция для взятия правильного остатка.
Александр Титов Гений (53303) 9 лет назад
Остаток не может быть отрицательным. Иначе получилось бы двузначность определения деления целых чисел с остатком. Так что договорились при делении двух целых чисел друг на друга брать такой остаток, который больше нуля.
Вообще говоря если при делении числа a на число b получается число c и остаток r, то a = b*c + r, где остаток r меньше делителя b. Причём для любых двух целых a и b таких c и r по два - положительный и отрицательный остаток.
Так например, -10 = -4*3 + 2 или же -10 = 3*(-3)+ (-1). Других представлений, где остаток по модулю меньше делителя нет. Чтобы деление было однозначным, выбирают такое частное, у которого остаток положительный.
То есть верно, что -10/3 = -4 и остаток 2 и неверно, что -10/3 = -3 и остаток -1
aoaoaoaooaМастер (1875) 9 лет назад
И вам спасибо!
Александр Титов Гений (53303) Не за что. Выберите лучшим второй ответ - он раньше меня ответил
Похожие вопросы