Imagine un edificio infinitamente alto e infinitamente profundo con un elevador que solo tiene cuatro botones: [matemática] + a [/ matemática], [matemática] -a [/ matemática], [matemática] + b [/ matemática] y [matemática ] -b [/ matemáticas]. Si presiona un botón, sube o baja tantos pisos. Comenzamos en el piso 0.
Sea [math] d = {\ rm gcd} (a, b) [/ math]. Claramente, cualquier piso que podamos alcanzar será divisible por [math] d [/ math]. Menos obvio, lo contrario también es cierto: se puede llegar a cualquier piso presionando los botones la cantidad correcta de veces.
Para poder llegar a cualquier piso de este tipo, todo lo que necesitamos es una “fórmula” para llegar al piso [math] d [/ math]. (Si repetimos la fórmula tres veces, llegaremos al piso [matemática] 3d [/ matemática]. Para llegar al piso [matemática] -7d [/ matemática], repita la fórmula siete veces pero intercambie cada [matemática] + [ / math] para un [math] – [/ math] y viceversa)
¿Cómo encontramos la fórmula?
- ¿Qué método se usa para verificar la primalidad del número en la criptografía RSA?
- A + e = 4, be = 4, c * e = 4, d / e = 4 si a + b + c + d = 100, ¿cuál es el valor de 100?
- ¿Es esta una buena prueba de aritmética modular?
- ¿La integral de una función impar compleja también es 0 como en el análisis real?
- Cómo encontrar [matemática] n [/ matemática] de modo que el resto de la división euclidiana de [matemática] n ^ 2 + n [/ matemática] por [matemática] 5 [/ matemática] sea igual a [matemática] 2 [/ matemáticas], donde [matemáticas] n \ in \ Z [/ matemáticas]
Caso base: si [matemática] a> 0 [/ matemática] pero [matemática] b = 0 [/ matemática], la solución es fácil: [matemática] d = a [/ matemática], por lo que solo debemos presionar [matemática ] + a [/ math] una vez.
Caso resuelto recursivamente: si tanto [matemática] a [/ matemática] como [matemática] b [/ matemática] son positivas, imagine un edificio diferente en el que los botones del elevador sean [matemática] + b [/ matemática], [matemática] – b [/ math], [math] + c [/ math] y [math] -c [/ math], donde [math] c = a \ bmod b [/ math]. Sabemos que [math] {\ rm gcd} (a, b) = {\ rm gcd} (b, c) [/ math]: esta es la propiedad utilizada en el algoritmo euclidiano estándar.
El algoritmo euclidiano extendido tiene el siguiente aspecto:
- Encuentre recursivamente la “fórmula” para el nuevo edificio. La fórmula debe tener la forma “presione el botón” [matemática] + b [/ matemática] “[matemática] x [/ matemática] veces y el botón” [matemática] + c [/ matemática] “[matemática] y [/ matemática] veces (donde [matemática] x [/ matemática] y [matemática] y [/ matemática] pueden ser negativas, lo que significa que debe presionar el botón con el signo opuesto).
Formalmente, hemos encontrado [math] (d, x, y) [/ math] tal que [math] {\ rm gcd} (b, c) = d [/ math] y [math] bx + cy = d [ /matemáticas]. - Tenga en cuenta que en nuestro edificio original podemos simular cada botón “[matemática] + c [/ matemática]” presionando “[matemática] + a [/ matemática]” una vez y luego “[matemática] -b [/ matemática]” a Número adecuado de veces. (Es decir, exactamente [math] z = a \ mathop {\ rm div} b [/ math] veces).
Esto nos da la fórmula para el edificio original: presione el botón “[matemática] + a [/ matemática]” exactamente [matemática] y [/ matemática] veces y presione el botón “[matemática] + b [/ matemática]” exactamente [matemáticas] x-zy [/ matemáticas] veces.