Шаблон: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 (знак берётся от делимого)
  • У нас на вики — знак берётся от делимого

Где это используется:

  1. Проверка чётности: n % 2 == 0 — число чётное.
  2. Циклический сдвиг: часы — 14 mod 12 = 2 (2 часа дня).
  3. Хеширование и криптография.
  4. Алгоритмы: например, алгоритм Евклида для НОД (наибольшего общего делителя).


Применение:
{{Mod|делимое|делитель}}
Примеры с положительным целым модулем:
  • {{Mod|12|10}} = 2.
  • {{Mod|10.1|10}} = 0.1.
    • compare: {{#expr:10.1 mod 10}} = 0.
  • {{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.
  • {{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.