Деление с остатком | это... Что такое Деление с остатком? (original) (raw)

Деление c остатком (деление по модулю, нахождение остатка от деления, остаток от деления) — арифметическая операция, результатом которой является два целых числа: неполное частное и остаток от деления целого числа на другое целое число.

Определение

Разделить целое число a\, на натуральное число b > 0\, с остатком означает представить его в виде:

a = b\,q + r,\quad 0 \leqslant r < b \quad (q \in \mathbb{Z},\,r \in \mathbb{Z}).

При этом q\, называется неполным частным, а r\,остатком от деления a на b.

Например, при делении с остатком a = 78 на b = 33 получаем неполное частное q = 2 и остаток r = 12:

78 = 33 \cdot 2 + 12.

В программировании

Операция вычисления остатка в различных языках программирования

Язык Оператор Знак результата
ActionScript % Делимое
Ada mod Делитель
rem Делимое
ASP Mod Не определено
Си (ISO 1990) % Не определено
Си (ISO 1999) % Делимое[источник не указан 316 дней]
C++ % Не определено[1]
C# % Делимое
ColdFusion MOD Делимое
Common Lisp mod Делитель
rem Делимое
Delphi mod Делимое
Microsoft Excel =MOD() (англ. версия) =ОСТАТ() (рус. версия) Делитель
Euphoria remainder Делимое
FileMaker Mod Делитель
Fortran mod Делимое
modulo Делитель
GML (Game Maker) mod Делимое
div Делитель
J |~ Делитель
Java % Делимое[2]
JavaScript % Делимое
Lua % Делитель
Mathematica Mod Делитель
MATLAB mod Делитель
rem Делимое
MySQL MOD % Делимое
Objective Caml mod Не определено
Pascal mod Делимое
Perl % Делитель
PHP % Делимое
PL/I mod Делитель (ANSI PL/I)
Prolog (ISO 1995) mod Делитель
Python % Делитель
QBasic MOD Делимое
R %% Делитель
RPG %REM Делимое
Ruby % Делитель
Scheme modulo Делитель
SenseTalk modulo Делитель
rem Делимое
Tcl % Делитель
Verilog (2001) % Делимое
VHDL mod Делитель
rem Делимое
Visual Basic Mod Делимое

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

Обозначения операции взятия остатка в различных языках программирования представлены в таблице справа. Например, в Паскале операция mod вычисляет остаток от деления, а операция div осуществляет целочисленное деление, при котором остаток от деления отбрасывается:

78 mod 33 = 12 78 div 33 = 2

Важно отметить, что операция взятия остатка в языках программирования может возвращать отрицательный результат (для отрицательного делимого или делителя). Для нахождения минимального неотрицательного остатка от деления числа a на положительное число b, где a может принимать как положительные, так и отрицательные значения, можно воспользоваться следующей формулой:

См. также

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

A\B = 0 при A<B (A mod B) = A

Проверка:

B*0 + A = A

Примечания

  1. _««_ISO/IEC 14882:2003 : Programming languages -- C++»», 5.6.4: International Organization for Standardization, International Electrotechnical Commission, 2003 . «the binary % operator yields the remainder from the division of the first expression by the second. …. If both operands are nonnegative then the remainder is nonnegative; if not, the sign of the remainder is implementation-defined».
  2. К. Арнолд, Дж. Гослинг, Д. Холмс Язык программирования Java. — 3-е изд. — М., СПб., Киев: Вильямс, 2001. — С. 173—174. — ISBN 5-8459-0215-0