stringtranslate.com

Sistema de numeración de residuos

Un sistema de numeración de residuos ( RNS ) es un sistema de numeración que representa números enteros por sus valores módulo de varios enteros coprimos por pares llamados módulos. Esta representación está permitida por el teorema del resto chino , que afirma que, si M es el producto de los módulos, hay, en un intervalo de longitud M , exactamente un número entero que tiene cualquier conjunto dado de valores modulares. La aritmética de un sistema numérico de residuos también se llama aritmética multimodular .

La aritmética multimodular se usa ampliamente para el cálculo con números enteros grandes, generalmente en álgebra lineal , porque proporciona un cálculo más rápido que con los sistemas numéricos habituales, incluso cuando se tiene en cuenta el tiempo de conversión entre sistemas numéricos. Otras aplicaciones de la aritmética multimodular incluyen el máximo común divisor polinomial , el cálculo de bases de Gröbner y la criptografía .

Definición

Un sistema de numeración de residuos está definido por un conjunto de k números enteros

llamados módulos , que generalmente se supone que son coprimos por pares (es decir, dos de ellos tienen un máximo común divisor igual a uno). Se han definido sistemas de números de residuos para módulos no coprimos, pero no se utilizan habitualmente debido a sus peores propiedades. Por lo tanto, no serán considerados en lo que resta de este artículo. [1]

Un número entero x está representado en el sistema de numeración de residuos por el conjunto de sus restos.

bajo división euclidiana por módulos. Eso es

y

por cada yo

Sea M el producto de todos los . Dos números enteros cuya diferencia es múltiplo de M tienen la misma representación en el sistema de numeración de residuos definido por m i s. Más precisamente, el teorema del resto chino afirma que cada uno de los M conjuntos diferentes de posibles residuos representa exactamente una clase de residuo módulo M. Es decir, cada conjunto de residuos representa exactamente un número entero en el intervalo . Para números con signo, el rango dinámico es (cuando es par, generalmente se representa un valor negativo adicional). [2]

Operaciones aritmeticas

Para sumar, restar y multiplicar números representados en un sistema numérico de residuos, basta con realizar la misma operación modular en cada par de residuos. Más precisamente, si

es la lista de módulos, la suma de los números enteros x e y , representados respectivamente por los residuos y es el número entero z representado por tal que

para i = 1, ..., k (como es habitual, mod denota la operación de módulo que consiste en tomar el resto de la división euclidiana por el operando derecho). La resta y la multiplicación se definen de manera similar.

Para una sucesión de operaciones, no es necesario aplicar la operación de módulo en cada paso. Puede aplicarse al final del cálculo o, durante el cálculo, para evitar el desbordamiento de las operaciones de hardware.

Sin embargo, operaciones como comparación de magnitudes, cálculo de signos, detección de desbordamiento, escalado y división son difíciles de realizar en un sistema de número de residuos. [3]

Comparación

Si dos números enteros son iguales, entonces todos sus residuos son iguales. Por el contrario, si todos los residuos son iguales, entonces los dos números enteros son iguales o sus diferencias son múltiplos de M. De ello se deduce que probar la igualdad es fácil.

Por el contrario, probar desigualdades ( x < y ) es difícil y, por lo general, requiere convertir números enteros a la representación estándar. Como consecuencia, esta representación de números no es adecuada para algoritmos que utilizan pruebas de desigualdad, como la división euclidiana y el algoritmo euclidiano .

División

La división en los sistemas de numeración de residuos es problemática. Por otro lado, si es coprimo con (es decir ), entonces

se puede calcular fácilmente mediante

donde es el inverso multiplicativo del módulo y es el inverso multiplicativo del módulo .

Aplicaciones

RNS tiene aplicaciones en el campo de la aritmética informática digital . Al descomponer en esto un número entero grande en un conjunto de números enteros más pequeños, se puede realizar un cálculo grande como una serie de cálculos más pequeños que se pueden realizar de forma independiente y en paralelo.

Ver también

Referencias

  1. ^ Parhami, Behrooz (2010). Aritmética informática: algoritmos y diseños de hardware (2 ed.). Nueva York, Estados Unidos: Oxford University Press . ISBN 978-0-19-532848-6. Archivado desde el original el 4 de agosto de 2020 . Consultado el 23 de enero de 2021 .(xxv+641 páginas)
  2. ^ Colgado, CY; Parhami, B. (1 de febrero de 1994). "Un método aproximado de detección de signos para números de residuos y su aplicación a la división RNS" (PDF) . Computadoras y Matemáticas con Aplicaciones . 27 (4): 23–35. doi :10.1016/0898-1221(94)90052-3.
  3. ^ Isupov, Konstantin (7 de abril de 2020) [20 de marzo de 2020, 8 de marzo de 2020, 17 de febrero de 2020]. "Uso de intervalos de coma flotante para cálculos no modulares en el sistema de numeración de residuos". Acceso IEEE . 8 : 58603–58619. Código Bib : 2020IEEEA...858603I. doi : 10.1109/ACCESS.2020.2982365 . ISSN  2169-3536.

Otras lecturas