Modulo

operacja wyznaczania reszty z dzielenia
Modulo w różnych językach programowania i programach
Język Operator Znak ilorazu
ActionScript % dzielna
Ada mod dzielnik
rem dzielna
ASP Mod nieokreślone
bash % dzielna
C (ISO 1990) % nieokreślone
C (ISO 1999) % dzielna
C++ % nieokreślone[a]
C# % dzielna
Cobol MOD (parametr-1 parametr-2) dzielnik
CoffeeScript % dzielna
%% dzielnik[1]
ColdFusion MOD dzielna
Common Lisp mod dzielnik
rem dzielna
D % dzielna
Eiffel \\ dzielna
Euphoria remainder dzielna
Microsoft Excel, Calc[2] =MOD() dzielnik
FileMaker Mod dzielnik
Fortran mod dzielna
modulo dzielnik
GML (Game Maker) mod dzielna
div dzielnik
Go % dzielna
Haskell mod dzielnik
rem dzielna
J |~ dzielnik
Java % dzielna
JavaScript % dzielna
Lua % dzielnik
MathCad mod(x,y) dzielnik
Mathematica Mod dzielnik
MATLAB mod dzielnik
rem dzielna
MySQL MOD
%
dzielna
Objective Caml mod nieokreślone
Occam \ dzielna
Pascal (Delphi) mod dzielna
Perl % dzielnik
PHP % dzielna
PL/I mod dzielnik (ANSI PL/I)
Prolog (ISO 1995) mod dzielnik
rem dzielna
Python % dzielnik
QBasic MOD dzielna
R %% dzielnik
RPG %REM dzielna
Ruby % dzielnik
Scheme modulo dzielnik
Scratch mod dzielna
SenseTalk modulo dzielnik
rem dzielna
Smalltalk \\ dzielnik
rem: dzielna
Tcl % dzielnik
Verilog (2001) % dzielna
VHDL mod dzielnik
rem dzielna
Visual Basic Mod dzielna

Modulo[b] – operacja wyznaczania reszty z dzielenia jednego typu liczbowego przez drugi. W dalszym ciągu napis będzie oznaczał, iż jest resztą z dzielenia przez [3]

Są różne sposoby określania reszty, a komputery i kalkulatory mają różne sposoby przechowywania i reprezentowania liczb, więc wynik operacji modulo zależy od języka programowania i/lub sprzętu.

W niemal każdym systemie komputerowym współczynnik wynikający z dzielenia jest ograniczany do zbioru liczb całkowitych, a reszta jest zwykle ograniczona przez albo Wybór między dwiema możliwymi resztami zależy od znaku lub oraz użytego języka programowania. Niektóre języki programowania, jak na przykład C89, nawet nie definiują wyniku jeśli zarówno jak i jest ujemne – patrz tabela.

modulo 0 jest nieokreślone w większości systemów, choć niektóre określają je jako Jeśli definicja jest spójna z algorytmem dzielenia, wtedy implikuje co jest sprzeczne (tzn. zwykła reszta w tym wypadku nie istnieje).

Reszta może być wyznaczana równaniami, które korzystają z innych funkcji. Jednym z takich użytecznych równań wyznaczania reszty jest

gdzie oznacza zaokrąglenie w dół liczby

Dzielenie modulo jest powszechnie używane przy obliczaniu cyfry kontrolnej w identyfikatorach. W algorytmie Luhna, numerach PESEL, REGON, NIP, numerach dowodów osobistych, paszportów, numerach towarów EAN, numerach banknotów EURO, numerach kont bankowych IBAN, numerach substancji chemicznych CAS, ISBN, ISMN, ISSN, ISTC, EVN-UIC, numerach recept, prawa wykonywania zawodu lekarza, numerach kontenera i wielu innych[4]. Podstawowym celem użycia cyfry lub znaku kontrolnego jest wykrywanie pomyłek przy ręcznym wprowadzaniu numeru do systemu informatycznego. Wszystkie te metody zapewniają wykrycie zamiany pojedynczego znaku oraz w znacznej większości zamiany sąsiednich znaków, tzw. czeskiego błędu.

  1. według ISO/IEC 14882:2003 „(...) operator binarny % wyznacza resztę z dzielenia pierwszego wyrażenia przez drugie (...) Jeśli oba operandy są nieujemne to reszta jest nieujemna; w przeciwnym razie znak reszty jest zależny od implementacji”.
  2. Etym. w moduł.

Przypisy

edytuj
  1. CoffeeScript operators.
  2. Funkcje matematyczne - LibreOffice Help [online], help.libreoffice.org [dostęp 2017-11-25] (ang.).
  3. Ronald L. Graham, Donald E. Knuth, Oren Patashnik: Matematyka konkretna. PWN, 2001, s. 148-151. ISBN 83-01-12124-6.
  4. Weryfikacja cyfry kontrolnej [online], lipiec 2007 [dostęp 2018-10-25].