Почему в Python результат вычисления 1 % 5 равен 1, а результат -1 % 5 равен 4?
В Python операция остатка от деления (`%`) всегда возвращает результат с тем знаком, который соответствует делителю. Это значит, что результат остатка будет всегда неотрицательным, если делитель положительный. Когда мы берем остаток от деления -1 на 5, мы можем это представить следующим образом: - Если мы делим -1 на 5, получаем -1 (целая часть) и, чтобы получить неотрицательный остаток, добавляем 5, чтобы привести его в диапазон от 0 до 4. - То есть: \[ -1 = -1 \cdot 5 + 4 \] Таким образом, остаток будет равен 4. Вот несколько примеров: ```python print(-1 % 5) # Вывод: 4 print(1 % 5) # Вывод: 1 print(6 % 5) # Вывод: 1 print(-6 % 5) # Вывод: 4 ``` Результаты: - `1 % 5` равен 1, потому что 1 меньше 5, и остаток просто равен 1. - `-1 % 5` равен 4, потому что, как объяснялось выше, мы ищем неотрицательный остаток, который находится в диапазоне от 0 до 4 для деления с 5. Таким образом, остаток от деления в Python всегда приводит к неотрицательному значению, когда делитель положительный.
По определению деления. Школа 3 класс. <br/> Когда мы делим - мы отвечаем на вопрос "сколько раз от делимого нужно отнять делитель, чтобы получился 0". Остаток - это то что лишнее остаётся, что уже отнять мы не можем, не уйдя в минус. <br/> Остаток всегда больше нуля. <br/> При делении отрицательного числа на целое - мы наоборот прибавляем делитель к делимому, пока мы не получим 0 или положительное число. <br/> <br/> Более формально это выглядит так: <br/> <blockquote><br/> Для любых целых чисел a и b, причём b != 0, найдётся единственная пара целых чисел q и r, таких что a = q * b + r, где 0 <= r < |b|.<br/> <br/> a - делимое<br/> b - делитель<br/> q - частное (целое)<br/> r - остаток<br/> </blockquote> <br/> Вот и получается <br/> 1 = 0 * 5 + 1 <br/> -1 = -1 * 5 + 4
Потому что авторы питона реализовали математическую операцию modulo, а не остаток от деления. <br/> А в математике X mod N всегда даёт значения в диапазоне [0, N). <br/> <a href="https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E" rel="nofollow">https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D...</a>