Modulo
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.
Uwagi
Przypisy
- ↑ CoffeeScript operators.
- ↑ Funkcje matematyczne - LibreOffice Help, help.libreoffice.org [dostęp 2017-11-25] (ang.).
- ↑ Ronald L. Graham, Donald E. Knuth, Oren Patashnik: Matematyka konkretna. PWN, 2001, s. 148-151. ISBN 83-01-12124-6.
- ↑ Weryfikacja cyfry kontrolnej, lipiec 2007 [dostęp 2018-10-25] .