Остаток от деления отрицательных чисел

Пятница, 28 октября, 2016

В этой статье я расскажу о том, как правильно находить остаток от деления отрицательных чисел. Этой теме, к сожалению, уделяется очень мало внимания в школе, хотя для понимания учеником базовых основ математики она чрезвычайно важна. Именно поэтому, как репетитор по математике, на своих занятиях я разбираю это материал с учениками во всех подробностях. Это значительно упрощает дальнейшую подготовку к ЕГЭ, ОГЭ, вступительным экзаменам и олимпиадам по математике.

Итак, приступим. Чтобы разделить друг на друга два целых числа с остатком, нужно воспользоваться следующей теоремой:

Для любых целых чисел a и b, причём b\ne 0, найдётся единственная пара целых чисел q и r, таких что a = q\cdot b + r, где 0\leqslant r<|b|.

Здесь a — делимое, b — делитель, q — неполное частное, r — остаток. Сразу обращаем внимание, что остаток r — это неотрицательное число. Понятно, что условие b\ne 0 возникает потому, что деление на нуль невозможно.

Звучит довольно сложно, но на самом деле в этой теореме нет ничего сложного. Чтобы во всём разобраться, перейдём к примерам.

Примеры нахождения остатка от деления отрицательных чисел

Пример 1. Деление с остатком положительного целого числа на положительное целое число.

Допустим, что требуется разделить с остатком 27 на 4. Вопрос состоит в том, сколько раз число 4 содержится в числе 27? Но мы знаем, что нет такого целого числа, на которое можно умножить 4, чтобы получить 27. Поэтому вопрос нужно переформулировать. На какое число нужно умножить 4, чтобы получить число, максимально близкое к 27, но не превзойти его? Очевидно, что это число 6. Если 4 умножить на 6, то получится 24. До исходного делимого 27 не хватает 3. Следовательно, остаток от деления 27 на 4 составляет 3:

27 : 4 = 6 ост. 3.

Пример 2. Деление с остатком отрицательного целого числа на положительное целое число.

Что если требуется найти остаток от деления отрицательного целого числа -15 на положительное целое число 4? Начнём с того, что неполное частное должно получиться отрицательным, поскольку при делении отрицательного числа на положительное, результат получается отрицательным. Кто-нибудь может предположить, что неполное частное в данном случае должно быть равно -3. Но в этом случае, умножив -3 на 4, мы получим -12. И чтобы получить исходное делимое -15, нужно к результату -12 прибавить число -3, которое не может быть остатком, потому что остаток не может быть отрицательным!

Поэтому в данном случае неполное частное равно -4. В этом случае, умножая -4 на делитель 4, мы получаем -16. И теперь, чтобы получить исходное делимое -15, нужно к этому результату прибавить число 1. Оно неотрицательно и меньше модуля делителя (то есть 4). То есть оно и является остатком:

-15 : 4 = -4 ост. 1.

Пример 3. Деление положительного целого числа на отрицательное целое число.

Рассмотрим теперь пример деления с остатком положительного целого числа 113 на отрицательное целое число -3. Неполное частное, как и в предыдущем примере, должно быть отрицательным, потому что при делении положительного числа на отрицательное, результат отрицателен. Давайте думать, чему конкретно равно неполное частное. Очевидно, что оно равно -37. Действительно, при умножении -37 на -3 получается 111. Теперь, чтобы получить исходное делимое, нужно прибавить к этому результату число 2, которое неотрицательно и меньше модуля делителя (то есть модуля -3, что равно 3). Итак, наш ответ:

113 : (-3) = -37 ост. 2.

Пример 4. Деление с остатком отрицательного целого числа на отрицательное целое число.

Ну и последний пример. Отрицательное целое число -15 требуется поделить с остатком на отрицательное целое число -7. Неполное частное должно быть положительно по знаку, потому что при делении отрицательных чисел результат получается положительным. И оно равно 3. Действительно, умножая 3 на -7, получаем -21. Теперь к этому числу нужно прибавить положительное и меньшее модуля -7 (то есть 7) число 6, чтобы получить наше исходное делимое -15. Следовательно, остаток от деления отрицательных чисел -15 на -7 равен:

-15 : (-7) = 3 ост. 6.

Проверьте, насколько хорошо вы поняли этот урок. Найдите самостоятельно остаток от деления отрицательных чисел:

а) -16 на 7;

б) 8 на -9;

в) -114 на -4.

Свои ответы пишите в комментариях, я их проверю.

Материал подготовил репетитор по математике и физике по скайпу, Сергей Валерьевич

Комментарии

  1. Умка:

    а) -16 : 7 = -3 ост. 5;
    б) 8 : (-9) = 0 ост. 8;
    в) -114 : (-4) = 29 ост. 2.

    1. Сергей:

      Всё верно!

      1. Елена:

        Почему в excel ?
        частное 8/-9=0
        Остат 8/-9= -1

    2. Иван:

      Откуда в а) -3?

      1. Сергей:

        Потому что -16 = -3*7+5

  2. Саша:

    Пример 3. Опечатка ?
    Написано «минус 37». В примере число положительное

    1. Сергей:

      Да, спасибо, исправил.

  3. Игорь:

    Спасибо за урок!

  4. Илья:

    Разве знак остатка не зависит от знака делителя? Есть ощущение, что статья неверна.

    1. Илья:

      Можно это проверить в банальном Python

      1. Илья:

        Прошу прощения, все верно, это я перекодил в ночной час.

        1. Сергей:

          Хорошо. Я сам только начинаю изучать Python, но уже успело сложиться ощущение, что ему вполне можно доверять)

          1. Амир:

            почему -3 / 5 = -1 ост.2

          2. Сергей:

            Потому что -3 = 5*(-1)+2

      2. Александр:

        в пайтон с отрицательным на отрицательное работает немного не так
        -15 // -7 = 2
        -15 % -7 = -1

        1. Сергей:

          Да, спасибо. Мы это уже выяснили (см. комментарии ниже). Это особенность языка, связанная с некоторыми удобствами для разработчика. Но с точки зрения математики остаток — это всегда неотрицательное число.

  5. Алексеев Денис:

    Ответ на задачу в видео:
    1) Подберём частное (например, 1) и выявим делимое:
    A=1*12+5=17
    2) Найдём остаток при делении числа 17 на 4:
    17:4=4 (ост. 1)
    3) Подтвердим ответ (1), подберём другое частное (например, 7):
    A=7*12+5=89
    89:4=22 (ост. 1)
    Остатки одинаковы, ответ подтверждён!
    Ответ: остаток равен 1.

    1. Сергей:

      Да, это верно. Только доказательство не является полным, если оно проведено для конкретных примеров. Нужно доказать в общем виде. Взять не конкретные числа, а число 12n+5, где n — целое, и найти остаток от деления этого числа на 4.

      1. Damocle:

        Кажется, я доказал методом индукции (или чем-то вроде него). Есть ли ещё какие-нибудь методы?
        Доказательство:
        Известно, что у/12=х(ост.5), где х и у — целые. Нужно найти остаток для у/4. Найдем его для х=1:
        у=(12*1+5)=17 17/4=4(ост.1)
        Предположим, что остаток от деления у на 4 всегда равен 1. Подставим в х число k+1, где k — целое.
        (12*(k+1)+5)/4 = (12k+17)/4 = 3k + 4 + 1/4.
        Значит, при любом целом k в числе у будет присутствовать дробь 1/4, которая в остатке дает единицу, и при делении у на 4 в остатке всегда будет 1.

  6. Наталья:

    Про Python (3). В нем отрицательный остаток от деления положительного числа на отрицательное:
    >>> 15%-4
    -1
    Что противоречит пункту теоремы r>=0.
    Долго не могла понять что не так, пока не узнала, что языки программирования могут по-разному «отвечать» на деление с остатком. Так что проверка на Python может быть не всегда корректна с точки зрения математики.

    1. Сергей:

      Спасибо за комментарий! Действительно, сейчас прочитал об этом)) На каком-то форуме даже есть некоторое объяснение, почему создатели Python решили сделать именно так. Но это, видимо, исключительно для удобства разработчиков. Математически правильным является определение, которое представлено в статье.

    2. Ismoil:

      privet.neprotiv li vi nauchit menya (mod) kanyeshna yesli mozhete?

  7. Murat iz Uzbekistana:

    v kakom klasse provesti urok v takom poryadke naprimer na 5 om klasse tolko naturalniye chisla

  8. Аноним:

    Кто-то допустил ошибку в теореме и теперь в нее долбится стадо баранов не способное осознать что в реальности согласно этой теореме получается полный бред. Возьмите и разделите банковский долг -15 на 4 члена семьи в которой вы состоите, долг ваш, но вы договорились что долг подлете на четверых целыми числами, а остаток заплатит тот чья кредитка. Согласно это глупой теореме и этому глупому репетитору вы бы заплатили банку по 4 рубля, а тот чья кредитка заплатил бы 3. Можно ли сказать что вы поделили это ровными долями и остаток заплатил владелец кредитки? Нет нельзя. Отсюда вывод, это теорема не отвечает запросам реальности, кто-то допустил ошибку в ее формулировке установив ограничение что остаток не может быть отрицательным, а вы теперь как стадо баранов и попугаев это повторяете!

    1. Сергей:

      Вам там, видимо, ближе с Ваших интеллектуальных высот. Сообщите мировому научному сообществу, что ошиблись их седовласые учёные мужи.

      1. Данил:

        Так Вы объясните подробнее. Людям непонятно, поэтому они и задают такие вопросы

    2. Rod:

      Здравствуйте, уважаемый аноним.

      Если Я должен деньги банку и делю долг на 4 человека по-ровну целыми числами и остаток отдаю сам, тогда это 15%4=3 и остаток 3 (один платит 6, остальные по 3)
      Если Я банк, и мне должны 15 рублей и платят по той же схеме (поровну), но считаю при этом Я — банк
      тогда -15%4=по 4 платит каждый, и 1 я возвращаю кому-то из них.
      зависит от того, у кого эти деньги (у банка -15, у меня +15). Теорема вроде как подтверждается, поправьте, если ошибаюсь

    3. Аноним:

      Ты сам баран. Где в реальности ты видел отрицательные деньги?

      1. Sene:

        Аноним:
        05.09.2018 в 04:15

        Возьмите и разделите банковский долг -15 на 4 члена семьи

        Аноним:
        06.03.2020 в 20:03

        Ты сам баран. Где в реальности ты видел отрицательные деньги?

    4. Елена:

      Почему вы решили, что банковской долг это отрицательное число?

  9. Ismoil:

    ya zhivu v gorode Kulyabe-Tadzhikistan.

  10. Сергей Анатольевач:

    С данной теоремой я знаком давно, но недавно произошел интересный случай. Рассмотрим 2 примера:
    1) 5/-7
    2) -5/7
    В первом случае все понятно неполное частное 0 и остаток 5
    Во втором случае интереснее поскольку остаток не может быть отрицательным неполное частное мы берем -1 и остаток 2. Верно?
    Получается парадокс ведь 5/-7=-5/7 по правилу дроби можно минус вынести перед дробью -(5/7) почему же остатки разные? Как это донести детям и не вызвать у них в голове «кашу»?

    1. Аноним:

      потому что в природе не существует отрицательных чисел, отсюда и каша в башке

      1. Сергей Валерьевич:

        Строго говоря, в природе вообще никаких чисел не существует. Числа — это исключительно абстракция.

        1. Числа это абстракция, это модель окружающей нас реальности. В ещё большей степени этот тезис справедлив для производным от чисел — к определению абстракций второго порядка, использующих целые числа. Имею в виду ЦЕЛОЧИСЛЕННОЕ ДЕЛЕНИЕ (нахождение неполного частного) и ДЕЛЕНИЕ ПО МОДУЛЮ (нахождение остатка от деления).
          В разных отраслях знания эти абстракции второго порядка могут быть определены по-разному.
          Например, в вашем случае (в случае чистой математики) существует аксиома о всегда положительном остатке от деления. А в программировании (в дискретной математике) вместо упомянутой используется аксиома о минимальности частного от деления.
          В качестве примера:

          Зададим переменные – a : b = b * q + r;

          ЦЕЛОЧИСЛЕННОЕ ДЕЛЕНИЕ положительного целого числа на отрицательное целое число есть нахождение неполного частного от деления (выбираем условие минимизации частного от деление):

          10 // -3 = ((-3) * -3 + 1) // -3;
          10 // -3 = ((-3) * -4 — 2) // -3; -4 < -3 и q = -4
          (забегая вперёд,– отсюда следует, что в этом случае по правилам Python r = -2).

          а ДЕЛЕНИЕ ПО МОДУЛЮ положительного целого числа на отрицательное целое число есть нахождение остатка от деления (ответ зависит от того, что мы выбираем – условие минимизации частного от деление или условие положительности остатка от деления):

          10 % -3 = ((-3) * -3 + 1) // 3 ; q = -3 и r = 1
          10 % -3 = ((-3) * -4 — 2) // 3 ; q = -4 и r = -2
          По правилам молярной математики, где обязательное условие 0 <= r < |b|
          выбираем q = -3 и r = 1
          А по правилам, используемым в Python — q наименьшее из двух возможных (тех, которые дают произведение b * q меньшее или большее a),
          выбираем q = -4 и r = -2.

    2. Sene:

      дело в том, что дробь вида a / b (при и != 0, естественно) — это не тоже самое, что целочисленное деление a / b. В первом случае мы получаем конкретное число (даже если это иррациональная дробь), которое можно выражать разными способами — a / b = a*n / b * n.

      При целочисленном деление мы по сути находим корни линейного уравнения y = ax + b. в котором заданы y и a, надо найти x и b; корни этого уравнения будут различны для разных значений a и b. Для уравнения вида y = -ax + b (т.е., случай 5 % -7) искомая х = (y — b)/(-a) = (b — y)/a, а для -y = ax + b (-5 % 7) корень x = (-y — b)/a = (y + b) / a. Очевидно, что корни разные.

      Если на пальцах, то когда в находите частное связывает три числа, и если вы симметрично меняете 2, третье в соотношении остаётся неизменным. Целочисленное деление связывает не три, а четыре числа, причём попарно (делимое сильнее связано с остатком, а делитель — с частным), поэтому одновременное изменение делимого и делителя не является симметричным и сильно «перекашивает» систему.

      1. Sene:

        … не то же самое, что…
        …при целочисленном делении…
        Если на пальцах, то частное связывает…

        Работа над ошибками

      2. Pulse:

        Могли бы разъяснить поподробнее чуток)))
        На Питоне 3 начал выполнять целочисленное деление и остаток от деления и возник вопрос с отрицательным остатком.

        Уже день пытаюсь разобраться с этим.

  11. Илья:

    Спасибо, понятно объяснил!

  12. Лена:

    2(8q+5)-1, остаток чему равен

    1. Сергей Валерьевич:

      Остаток от деления этого выражения на 2 равен 1.

  13. Данила:

    Спасибо, язык программирования Python не умеет правильно делить с остатком. )))

  14. Владимир:

    Да уж… тоже сюда приплыл из-за питона.
    Весь косяк в том, что математически остаток деления на положительное число не может быть отрицательным. С одной точки зрения это выглядит странным:
    Например, клиент должен выплатить банку 15 рублей ровными долями за 4 дня. И банк должен другому клиенту выплатить столько же за столько же дней. Получаем, в первом случае -15//4=-4 в остатке 1, во втором 15//4=3 в остатке 3. Т.е. вроде бы одинаковые ситуации, но совершенно разные ежедневные выплаты. Это бредово, что клиент в последний день отдаёт больше, а только потом банк возвращает.
    С другой точки зрения, это выглядит норм:
    допустим, вы вычисляете день недели календаря = %7. Допустим, 1 января (день 0) — воскресенье. Соответственно, 3 января (день 2) = 2%7=2 (вторник). А если отмотать назад и посмотреть какой день недели был за 2 дня до НГ, то питон верно выдаст -2%7=5 (пятница). С++ в этом случае выдаст -2%7=-2 (?). Соответственно, в одних случаях это удобно, в других нет.

    1. %:

      … «С++ в этом случае выдаст -2%7=-2 (?)» …
      Это программа С++ просто останавливается, т.к. она безумно грамотная. Попробуйте, к примеру не 7, а 10 или 3. Всё равно будет -2
      Потому что программа останавливает вычисление из-за не логичности …

  15. Noob322:

    Подскажите пожалуйста дебилу т.к сломал голову на начальном изучении по A byte of Python.В книге приводится пример деления на остаток:-25.5 % 2.25 даст 1.5 и я никак не могу въехать, как получается 1.5 ,а не — 0.75???

    1. Сергей Валерьевич:

      Видимо, вот так: -12*2.25 + 1.5 = -25.5

  16. Аноним:

    * — 0.75

  17. Densh:

    -50 и 11, я так понял невозможно разделить с остатком?

    1. Алекс:

      Почему же нельзя? Можно вполне. То есть: -50/11= -5 и в остатке 5
      Так как: 11*(-5) = -55, и чтобы «добраться» до -50, нам надо 5 — это и есть остаток
      (Извините, если плохо объяснил)

  18. Бла:

    Автор, ты уебок! Ну как так можно объяснять , в Вики даже лучше расписано! Где формулы? Где мат доказательства?

    1. %:

      Сам ты такое об угол стукнутое чувырло — чмо шиномонтажное. Не нравится — дуй в Вики. Не мешай людям хорошие мысли выкладывать. Человек нужную тему поднял. Респект ему.

  19. Алексей Кияница:

    По поводу кредита банку 15 и его деления на 4 человека или 4 месяца. Кто ругается, что остатки при делении -15 и 15 на 4 разные и в этом нет экономического смысла, всего лишь, учитывая знак как направление выплаты (от клиента «-» или к банку «+», а хотите — от клиента «+», а к банку «-«), не учитывает, что и остаток будет связан с этим направлением. От клиента при знаке «+» («мои деньги») будет так: 15/4 = 3 + 3, то есть, по 3 платит каждый из 4-х человек, а остаток 3 уплатит кто-то один или снова раскидываем на всех. Но больше 15-ти платить не хотим. Банк при знаке «-» посмотрит по-иному. «Мне в банк придет» -15, и «я хочу, чтобы пришло так: -15 = -4×4 + 1. Знак «-» обозначает входящие платежи и для -15, и для -4. Остаток положительный и равен 1. Почему? Потому что банк, получив сверх меры, должен будет вернуть 1 обратно плательщикам. Банку выходно быстрее получить все, пусть и всерх меры, т.е. -16, вернув потом 1, чем получить -12 и потом десять лет ждать, что соберутся вернуть еще -3 (смотрим с позиций банка, знак «-«). Таким образом, знак в +15 и -15, в 3 и -4 и разный остаток — все это отражает разные экономические интересы. Тут же возникает вопрос о том, что знаки мы присвоили сами, но передумали и теперь хотим наоборот: «-15» — клиентские, а «»+15» — с позиций банка. Что измерится? Можно ли найти экономический смысл? Клиенты, уплата отрицательно ненавистного кредита: -15 = -4×4 + 1. Банк, приобретение плюса: 15 = 3×4 + 3. Просто посмотрите на этот вариант так, что клиенты решили расплатиться быстрее, чтобы не испортить кредитную историю, и поэтому платят по 4, не переживая из-за переплаты, которая будет возвращена. Банк оказывается банком, который понимает ценность долгосрочного сотрудничества и не напрягает людей платежами по 4, соглашаясь на 3, но с тем, что остаток они все-таки довнесут. Иначе будет испорчена кредитная история. В целом можно сказать, что выбор знака долга, платежа и, как результат, величины остатка — это всего лишь выбор одной стратегии поведения из двух — с недоплатой или с переплатой, и трактовку выбора также выбираем в зависимости от степени личной испорченности или степени веры в то, что люди — доброжелательные и ответственные партнеры.

  20. Алексей Кияница:

    А вообще, я сюда тоже попал из-за Phyton. Я доказывал, что ПО делает ошибки. Мне сказали, что в ПО остаток все-же может быть отрицательным, не разъяснив, почему. В комментариях владельца сайта нашел мысль о том, что изменение правил — всего лишь решение разработчика языка. И все встало на свои места. Честно говоря, мне больше непонятна политика официальной многовековой математики. Зачем устанавливать правила так, чтобы остаток был всегда больше нуля, даже при делении отрицательного числа, и тем создавать миру проблему на века. ) Я за тотальную симметрию везде, за исключением половой сферы и сферы искусства. Но, может, кто-то смог бы мне объяснить, в чем экономический смысл создания миру проблем? )

  21. Юрий:

    С математической точки зрения одно, с экономической-другое, в программирование третье. Важно понимать, что изначально люди придумали математику — это первоисточник. Экономику и программирование тоже придумали люди, но потом и другие, там есть математические расчеты, которые могут противоречить правилам классической математики. Важно понять из вопроса, что вопрос в сфере математики, или экономики, или программирования. Если из вопроса этого понять нельзя, то истинный ответ математический, так как математика — это первоисточник. Далее можно дополнить, что в экономике или программировании может быть иначе.

Добавить комментарий для Елена Cancel reply