Шаблон:Mod/doc
Шаблон реализует математический оператор деления по модулю. Его не следует путать с функцией парсера mod (остаток от деления после усечения обоих операндов до целого числа).
Возвращаемый результат всегда имеет тот же знак, что и делитель или ноль, и его абсолютное значение меньше абсолютного значения делителя. Однако этот шаблон возвращает 0, если делитель равен нулю (этот шаблон никогда не должен возвращать ошибку деления на ноль).
Абсурдопедия Образовательная: Деление по модулю (чаще говорят «взятие остатка по модулю») — это операция, которая находит остаток от деления одного числа на другое.
Обозначается обычно как a mod b (или a % b в программировании).
Например:
- 7 mod 3 = 1 (7 = 3·2 + 1)
- 10 mod 5 = 0 (делится нацело)
- 2 mod 5 = 2 (2 меньше 5, поэтому остаётся само число)
Важная тонкость: отрицательные числа
В математике и в разных языках программирования результат может отличаться:
- В Python: -7 % 3 = 2 (результат всегда имеет знак делителя)
- В C/C++/Java: -7 % 3 = -1 (знак берётся от делимого)
- У нас на вики — знак берётся от делимого
Где это используется:
- Проверка чётности: n % 2 == 0 — число чётное.
- Циклический сдвиг: часы — 14 mod 12 = 2 (2 часа дня).
- Хеширование и криптография.
- Алгоритмы: например, алгоритм Евклида для НОД (наибольшего общего делителя).