Resto

Algoritmo de división. Arriba se observa el cociente (2) y el resto (3) de dividir 11÷ 4

En aritmética el resto o residuo de una división de dos números enteros es el número que se le ha de restar al dividendo para que sea igual a un determinado número de veces el divisor. Equivalentemente, es el número resultante de la diferencia del dividendo con el producto del divisor por el cociente. O sea:

Resto=Dividendo − (divisor × cociente) {\displaystyle {\mbox{Resto=Dividendo}}-{\mbox{(divisor}}\times {\mbox{cociente)}}}

Según su resto las divisiones se clasifican como exactas, si su resto es cero, o enteras, cuando no lo es.

Generalmente el resto de dividir x entre y se suele expresar como  x  mod  y {\displaystyle \textstyle x{\mbox{ mod }}y} .

En la práctica, el resto de una división puede calcularse usando ecuaciones, en términos de otras funciones. En términos de la función parte entera ⌊ x ⌋ {\displaystyle \lfloor x\rfloor } , el resto se puede definir como:

x  mod  y := x − y ⌊ x y ⌋ {\displaystyle x{\mbox{ mod }}y:=x-y\left\lfloor {\frac {x}{y}}\right\rfloor }

La expresión x mod 0 queda sin definir en la mayoría de los sistemas numéricos, aunque algunos la definen como igual a x.

Por ejemplo, 4 / 5 = 0.8, si se toma la parte inexacta el resto de esta división sería cero. Pero en términos de la función entera 4 mod 5 sería 4, ya que resto = 4 - 5 * 0 = 4, es decir el resto es 4.

## Implementación para el cálculo del resto

[editar]

Para números pequeños se suele implementar la función indicada anteriormente, que es muy sencilla. Para la implementación con números grandes, existen métodos mucho más eficientes, como el algoritmo de reducción de Montgomery y la reducción de Barrett. La reducción de Barrett toma el hecho de que existen números q y r, de manera que x = mq+r y 0 ≤ r < m (véase Algoritmo de la división), y lo utiliza para estimar q utilizando sólo operaciones de recorrimiento en lugar de divisiones.

Algoritmo  Reducción de Barrett

Entradas:

x = ( x 2 k − 1 ⋯ x 1 x 0 ) b {\displaystyle x=\left(x_{2k-1}\cdots x_{1}x_{0}\right)_{b}} ( x {\displaystyle x} en forma de lista de dígitos)
m = ( m k − 1 ⋯ m 1 , m 0 ) b {\displaystyle m=\left(m_{k-1}\cdots m_{1},m_{0}\right)_{b}} con  m k − 1 ≠ 0 {\displaystyle m_{k-1}\neq 0} ( m {\displaystyle m} en forma de lista de dígitos)
μ = ⌊ b 2 k m ⌋ {\displaystyle \mu =\left\lfloor {\frac {b^{2k}}{m}}\right\rfloor }

Salida:  x  mod  m {\displaystyle x{\mbox{ mod }}m\,}

* * *

1. q 1 ← ⌊ x / b k − 1 ⌋ {\displaystyle q_{1}\gets \left\lfloor x/b^{k-1}\right\rfloor }
2. q 2 ← q 1 × μ {\displaystyle q_{2}\gets q_{1}\times \mu }
3. q 3 ← ⌊ q 2 / b k − 1 ⌋ {\displaystyle q_{3}\gets \left\lfloor q_{2}/b^{k-1}\right\rfloor }
4. r 1 ← x  mod  b k + 1 {\displaystyle r_{1}\gets x{\mbox{ mod }}b^{k+1}}
5. r 2 ← q 3 × m  mod  b k + 1 {\displaystyle r_{2}\gets q_{3}\times m{\mbox{ mod }}b^{k+1}}
6. r ← r 1 − r 2 {\displaystyle r\gets r_{1}-r_{2}}
7. Si r < 0 {\displaystyle r<0\,} entonces:
1. r ← r + b k − 1 {\displaystyle r\gets r+b^{k-1}}
8. Mientras r ≥ m {\displaystyle r\geq m} haga lo siguiente:
1. r ← r − m {\displaystyle r\gets r-m}
9. Devuelva r {\displaystyle r}

## Véase también

[editar]

* producto
* división
* Divisores
* Aritmética modular
* Algoritmo de Euclides

## Enlaces externos

[editar]

* Weisstein, Eric W. «Remainder». En Weisstein, Eric W, ed. MathWorld (en inglés). Wolfram Research.

Control de autoridades|

* Proyectos Wikimedia
* Datos: Q846677
* Diccionarios y enciclopedias
* Britannica: url

|

* Datos: Q846677