Шаблон:Mod
<
Шаблон реализует математический оператор деления по модулю. Его не следует путать с функцией парсера 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 часа дня).
- Хеширование и криптография.
- Алгоритмы: например, алгоритм Евклида для НОД (наибольшего общего делителя).
- Применение:
{{Mod|делимое|делитель}}
- Примеры с положительным целым модулем:
{{Mod|12|10}}= 2.{{Mod|10.1|10}}= 0.1.- compare:
{{#expr:10.1 mod 10}}= 0.
- compare:
{{Mod|10|10}}= 0.{{Mod|2|10}}= 2.{{Mod|0|10}}= 0.{{Mod|-2|10}}= 8.{{Mod|-10|10}}= 0.{{Mod|-10.1|10}}= 9.9.{{Mod|-12|10}}= 8.
- Примеры с отрицательным целым модулем:
{{Mod|12|-10}}= -8.{{Mod|10.1|-10}}= 0.1.{{Mod|10|-10}}= 0.{{Mod|2|-10}}= -8.{{Mod|0|-10}}= 0.{{Mod|-2|-10}}= -2.{{Mod|-10|-10}}= 0.{{Mod|-10.1|-10}}= -0.1.{{Mod|-12|-10}}= -2.
- Примеры с положительным нецелым модулем:
{{Mod|21.5|10.5}}= 0.5.- compare:
{{#expr:21.5 mod 10.5}}= 1.
- compare:
{{Mod|21.1|10.5}}= 0.1.{{Mod|21|10.5}}= 0.{{Mod|20.9|10.5}}= 10.4.{{Mod|11|10.5}}= 0.5.{{Mod|10.6|10.5}}= 0.1.{{Mod|10.5|10.5}}= 0.{{Mod|10.1|10.5}}= 10.1.{{Mod|10|10.5}}= 10.{{Mod|2|10.5}}= 2.{{Mod|0|10.5}}= 0.{{Mod|-2|10.5}}= 8.5.{{Mod|-10|10.5}}= 0.5.{{Mod|-10.1|10.5}}= 0.4.{{Mod|-10.5|10.5}}= 0.{{Mod|-10.6|10.5}}= 10.4.{{Mod|-11|10.5}}= 10.{{Mod|-20.9|10.5}}= 0.1.{{Mod|-21|10.5}}= 0.{{Mod|-21.1|10.5}}= 10.4.{{Mod|-21.5|10.5}}= 10.
- Примеры с нулевым модулем:
{{Mod|2|0}}= 0.{{Mod|0|0}}= 0.{{Mod|-2|0}}= 0.{{subst:Mod|12|7|subst=subst:}}= 5.