Division med resten

Division med rest  er en aritmetisk operation , der spiller en stor rolle i aritmetik , talteori , algebra og kryptografi . Oftest er denne operation defineret for heltal eller naturlige tal som følger [1] . Lad og  være heltal, og division med en rest ("delelig") med ("divisor") betyder at finde heltal og sådan, at ligheden gælder:

Således er resultaterne af division med en rest to heltal: kaldet den partielle kvotient af division, og  resten af ​​divisionen . En yderligere betingelse er pålagt resten: det vil sige, at resten af ​​divisionen skal være et ikke-negativt tal og i absolut værdi mindre end divisoren . Denne betingelse sikrer entydigheden af ​​resultaterne af division med en rest for alle heltal, det vil sige, at der er en unik løsning på ligningen under ovenstående betingelser. Hvis resten er nul, siges den at være delelig med

At finde partialkvotienten kaldes også heltalsdeling , og at finde resten af ​​en division kaldes at tage resten eller uformelt modulo-division (det sidste led bør dog undgås, da det kan føre til forveksling med division i en ring eller gruppe af rester i analogi med addition eller multiplikation modulo ).

Eksempler Undersøgelse: Undersøgelse: Undersøgelse: Undersøgelse:

Divisionsoperationen med en rest kan defineres ikke kun for heltal, men også for andre matematiske objekter (for eksempel for polynomier ), se nedenfor .

Definition

Forbliver man strengt inden for de naturlige tal , er man nødt til at skelne mellem division med en rest og division med heltal, da nulresten ikke er et naturligt tal; desuden skal den ufuldstændige kvotient, når man dividerer et mindre tal med et større, være lig med nul, hvilket også fører ud over naturlige tal. Alle disse kunstige restriktioner komplicerer formuleringerne unødigt, så kilderne betragter normalt enten den udvidede naturlige række , inklusive nul [2] , eller også formuleres teorien umiddelbart for heltal, som angivet ovenfor [1] .

For at beregne den partielle kvotient af division med et positivt tal skal du dividere (i sædvanlig forstand) med og runde resultatet ned til nærmeste heltal:

hvornår .

hvor semi-parenteser angiver at tage den heltallige del af . Værdien af ​​den ufuldstændige kvotient giver dig mulighed for at beregne værdien af ​​resten ved hjælp af formlen:

For en negativ divisor skal du runde kvotienten op:

hvornår .

"Mod"-operationen og forholdet til sammenligninger

Værdien af ​​resten kan opnås ved den binære operation at "tage resten" fra division med , angivet med mod :

Denne notation må ikke forveksles med modulo-sammenligningsnotation . Formlen for indebærer at udføre en sammenligning:

den omvendte implikation er dog ikke sand generelt. Denne sammenligning indebærer nemlig ikke opfyldelsen af ​​den ulighed , der er nødvendig for at være en rest.

I programmering

Operationen med at beregne delkvotienten og resten på forskellige programmeringssprog
Sprog Ufuldstændig
kvotient
Resten Resten tegn
ActionScript % Udbytte
Ada mod Afdeler
rem Udbytte
GRUNDLÆGGENDE \ MOD Udefineret
C (ISO 1990) / % Udefineret
C (ISO 1999) / % Delelig [3]
C++ (ISO 2003) / % Udefineret [4]
C++ (ISO 2011) / % Delelig [5]
C# / % Udbytte
kold fusion MOD Udbytte
Almindelig Lisp mod Afdeler
rem Udbytte
D / % Delelig [6]
Delphi div mod Udbytte
eiffel // \\ Udbytte
Erlang div rem Udbytte
Eufori remainder Udbytte
Microsoft Excel (engelsk) QUOTIENT() MOD() Afdeler
Microsoft Excel (russisk) ЧАСТНОЕ() ОСТАТ()
fil maker Div() Mod() Afdeler
Fortran mod Udbytte
modulo Afdeler
GML (Game Maker) div mod Udbytte
/ % Udbytte
Haskell div mod Afdeler
quot rem Udbytte
J |~ Afdeler
Java / % Delelig [7]
Math.floorDiv Math.floorMod Divider (1,8+)
JavaScript .toFixed(0) % Udbytte
Lua % Afdeler
Mathematica Quotient Mod Afdeler
MATLAB idivide(?, ?, 'floor') mod Afdeler
idivide rem Udbytte
MySQL DIV MOD
%
Udbytte
Oberon DIV MOD +
Målsætning Caml mod Udefineret
Pascal div mod Delelig [8]
Perl Ikke % Afdeler
PHP Nej [9] % Udbytte
PL/I mod Divider ( ANSI PL/I )
Prolog (ISO 1995) mod Afdeler
PureBasic / Mod
%
Udbytte
Python // % Afdeler
QBasic \ MOD Udbytte
R %/% %% Afdeler
RPG %REM Udbytte
rubin / % Afdeler
Ordning modulo Afdeler
SenseTalk modulo Afdeler
rem Udbytte
tcl % Afdeler
Verilog (2001) % Udbytte
VHDL mod Afdeler
rem Udbytte
Visual Basic \ Mod Udbytte

At finde resten af ​​en division bruges ofte i computerteknologi og telekommunikationsudstyr til at generere kontrolnumre og generere tilfældige tal inden for et begrænset område, såsom i en kongruent tilfældig talgenerator .

Betegnelserne for operationen med at tage resten på forskellige programmeringssprog er vist i tabellen til højre. For eksempel i Pascal beregner operationen modresten af ​​en division, og operationen divudfører en heltalsdivision, hvor resten af ​​divisionen kasseres:

78 mod 33 = 12 78 div 33 = 2

Resten tegn

Operationen med at tage resten i programmeringssprog kan returnere et negativt resultat (for en negativ dividende eller divisor). Der er to muligheder her:

  • Tegnet for resten er det samme som tegnet for udbyttet: den ufuldstændige kvotient runder mod nul.
  • Tegnet for resten er det samme som divisors fortegn: den ufuldstændige kvotient afrunder til .

Hvis et sprog har begge typer rester, har hver af dem sin egen partielle kvotientoperation. Begge operationer er afgørende.

  • Der er en sum af kopek, positiv eller negativ. Konverter det til rubler og kopek: og . Tegnet for resten er det samme som tegnet for udbyttet.n div 100n mod 100
  • Der er et uendeligt cellefelt, hver celle er 16×16 pixels. Hvilken celle falder punktet ( , ) ind i, og hvad er koordinaterne i forhold til cellens øverste venstre hjørne? Svar: og hhv. Restens tegn er det samme som divisors fortegn.x div 16, y div 16(x mod 16, y mod 16)

Hvordan programmeres, hvis der ikke er en sådan operation?

Den ufuldstændige kvotient kan beregnes ved at dividere og tage heltalsdelen: , hvor , afhængigt af opgaven, kan være en " floor " eller en trunkering. Dog er divisionen her brøk , hvilket er meget langsommere end hele tallet. En sådan algoritme bruges i sprog, der ikke har heltalstyper (særskilte regneark , programmerbare regnemaskiner og matematiske programmer), såvel som i scriptsprog , hvor fortolkningsomkostningerne langt overstiger overheaden af ​​fraktioneret aritmetik ( Perl , PHP ).

Hvis der ikke er nogen kommando, programmeres modresten som .

Hvis positiv, og tegnet falder sammen med tegnet for dividenden, ikke er defineret eller ukendt, kan du bruge formlen til at finde den mindste ikke-negative rest .

Den ufuldstændige kvotient og ikke-negative rest af division med en potens af to  er en bitforskydning (for tal med fortegn  , aritmetik) og .

Generaliseringer

Reelle tal

Hvis to tal og (bortset fra nul ) hører til mængden af ​​reelle tal , kan deles med uden en rest, og kvotienten er også et reelt tal. Hvis kvotienten efter betingelse skal være et heltal , i dette tilfælde vil resten være et reelt tal, det vil sige, det kan vise sig at være brøktal .

Formelt:

hvis , så , hvor . Eksempel

At dividere 7,9 med 2,1 med en rest giver:

(ufuldstændig kvotient); (resten).

Gaussiske heltal

Et gaussisk tal  er et komplekst tal af formen , hvor  er heltal. For dem kan division med en rest defineres: ethvert gaussisk tal kan divideres med en rest med ethvert ikke-nul Gaussisk tal , det vil sige repræsenteret som:

,

hvor kvotienten og resten  er gaussiske tal, og dog, i modsætning til heltal, er resten af ​​divisionen ikke entydigt defineret. Kan for eksempel opdeles i tre måder:

Polynomier

Når man dividerer med en rest af to polynomier og for at resultatet er entydigt, indføres en betingelse: graden af ​​resten af ​​polynomiet skal være strengt mindre end divisorens grad:

, og . Eksempel (resten 3 ), fordi :.

Se også

Noter

  1. 1 2 Division // Mathematical Encyclopedia (i 5 bind) . - M . : Soviet Encyclopedia , 1979. - T. 2.
  2. Potapov M. K., Alexandrov V. V., Pasichenko P. I. Algebra og analyse af elementære funktioner. M.: Nauka, 1981, 560 s., S. 9.
  3. ISO/IEC 9899:TC2: Når heltal divideres, er resultatet af /operatoren den algebraiske kvotient med enhver brøkdel kasseret. [Dette kaldes ofte "trunkering mod nul".] ; i listen over ændringer 1999→TC1 og TC1→TC2 er denne ændring ikke opført.
  4. " ISO/IEC 14882:2003: Programmeringssprog -- C++ " , 5.6.4: International Organization for Standardization , International Electrotechnical Commission , 2003  . "den binære %-operator giver resten fra divisionen af ​​det første udtryk med det andet. …. Hvis begge operander er ikke-negative, er resten ikke-negative; hvis ikke, er restens tegn implementeringsdefineret" .
  5. N3242=11-0012 (Arbejdsudkast), samme tekst som C99
  6. D-sprogspecifikation  (engelsk)  (utilgængeligt link) . dlang.org. Hentet 29. oktober 2017. Arkiveret fra originalen 3. oktober 2017.
  7. Arnold, Ken, Gosling, J. , Holmes, D. Java-programmeringssproget. - 3. udg. - M., St. Petersborg, Kiev: Williams, 2001. - S. 173-174. — ISBN 5-8459-0215-0 .
  8. 1973 standard: div - division med trunkering .
  9. PHP: Arithmetic Operators - Manual . Dato for adgang: 27. november 2014. Arkiveret fra originalen 19. november 2014.