VOOZH about

URL: https://pl.wikipedia.org/wiki/Modulo

⇱ Modulo – Wikipedia, wolna encyklopedia


Przejdź do zawartości
Z Wikipedii, wolnej encyklopedii
👁 Image
Ten artykuł dotyczy realizacji reszty i arytmetyki modularnej w informatyce. Zobacz też: reszta i arytmetyka modularna w matematyce.
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 👁 {\displaystyle a\ {\bmod {\ }}d=r}
będzie oznaczał, iż 👁 {\displaystyle r}
jest resztą z dzielenia 👁 {\displaystyle a}
przez 👁 {\displaystyle d.}
[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 👁 {\displaystyle r}
jest zwykle ograniczona przez 👁 {\displaystyle 0\leqslant r<|d|}
albo 👁 {\displaystyle -|d|<r\leqslant 0.}
Wybór między dwiema możliwymi resztami zależy od znaku 👁 {\displaystyle a}
lub 👁 {\displaystyle d}
oraz użytego języka programowania. Niektóre języki programowania, jak na przykład C89, nawet nie definiują wyniku jeśli zarówno 👁 {\displaystyle d,}
jak i 👁 {\displaystyle a}
jest ujemne – patrz tabela.

👁 {\displaystyle a}
modulo 0 jest nieokreślone w większości systemów, choć niektóre określają je jako 👁 {\displaystyle a.}
Jeśli definicja jest spójna z algorytmem dzielenia, wtedy 👁 {\displaystyle d=0}
implikuje 👁 {\displaystyle 0\leqslant r<0,}
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 👁 {\displaystyle r}
jest

👁 {\displaystyle r=a-d\left\lfloor {\frac {a}{d}}\right\rfloor ,}

gdzie 👁 {\displaystyle \lfloor x\rfloor }
oznacza zaokrąglenie w dół liczby 👁 {\displaystyle x.}

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 | edytuj kod]
  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].
podstawowe
zbiory liczb
oś liczbowa
działania
dwu-
-argumentowe
dodawanie (+)
mnożenie (· × *)
dzielenie (: ÷ /)
potęgowanie (^)
inne

porównywanie (min, max)

działania
jedno-
-argumentowe
potęgi
zaokrąglanie
inne
ułamki
zwykłe
dziesiętne skończone
dziesiętne nieskończone
symbole
różnych liczb
ułamków
dziesiętnych
mnożenia (×)
dzielenia (÷)
potęg
relacji
inne
reguły
zapisu
liczb
wyrażeń
arytmetycznych
prawa
działań
tożsamości
algebraiczne
inne
obliczenia
arytmetycze
liczydła
kalkulatory
inne narzędzia
specjaliści
powiązane
nauki
arytmetyka
rachunek błędów