Modulo

Modulo w różnych językach programowania i programach
JęzykOperatorZnak ilorazu
ActionScript%dzielna
Adamoddzielnik
remdzielna
ASPModnieokreślone
bash%dzielna
C (ISO 1990)%nieokreślone
C (ISO 1999)%dzielna
C++%nieokreślone[a]
C#%dzielna
CobolMOD (parametr-1 parametr-2)dzielnik
CoffeeScript%dzielna
%%dzielnik[1]
ColdFusionMODdzielna
Common Lispmoddzielnik
remdzielna
D%dzielna
Eiffel\\dzielna
Euphoriaremainderdzielna
Microsoft Excel, Calc[2]=MOD()dzielnik
FileMakerModdzielnik
Fortranmoddzielna
modulodzielnik
GML (Game Maker)moddzielna
divdzielnik
Go%dzielna
Haskellmoddzielnik
remdzielna
J|~dzielnik
Java%dzielna
JavaScript%dzielna
Lua%dzielnik
MathCadmod(x,y)dzielnik
MathematicaModdzielnik
MATLABmoddzielnik
remdzielna
MySQLMOD
%
dzielna
Objective Camlmodnieokreślone
Occam\dzielna
Pascal (Delphi)moddzielna
Perl%dzielnik
PHP%dzielna
PL/Imoddzielnik (ANSI PL/I)
Prolog (ISO 1995)moddzielnik
remdzielna
Python%dzielnik
QBasicMODdzielna
R%%dzielnik
RPG%REMdzielna
Ruby%dzielnik
Schememodulodzielnik
Scratchmoddzielna
SenseTalkmodulodzielnik
remdzielna
Smalltalk\\dzielnik
rem:dzielna
Tcl%dzielnik
Verilog (2001)%dzielna
VHDLmoddzielnik
remdzielna
Visual BasicModdzielna

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.

Uwagi

  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

  1. CoffeeScript operators.
  2. Funkcje matematyczne - LibreOffice Help, 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, lipiec 2007 [dostęp 2018-10-25].