Algoritmo de Euclides, Euclides extendido, teorema del resto chino

Algoritmo euclidiano (algoritmo euclidiano)

El algoritmo euclidiano también se llama método de lanzar y dividir, que se usa principalmente para calcular el máximo común divisor de dos números enteros ay b.

Simplemente hable sobre el principio del algoritmo: el máximo común divisor de dos enteros es igual al máximo común divisor del menor y el mayor dividido por el pequeño resto.
Es decir: mcd (a, b) = mcd (b, a mod b).

Da un ejemplo simple: Por
ejemplo, encuentra el máximo común divisor a = mcd (10, 24) de 10 y 24:

  1. Encontrar el máximo común divisor de 10 y 24 es igual a hallar el máximo común divisor de 10 y 4:
    a = mcd (10, 24) = mcd (10, 4)
  2. Encontrar el máximo común divisor de 10 y 4 es igual a hallar el máximo común divisor de 4 y 2, que es 2:
    a = mcd (10, 24) = mcd (10, 4) = mcd (4, 2) = 2
# python
def gcd(a, b):
    return a if b == 0 else gcd(b, a % b)
print(gcd(10,24)) # 2

Algoritmo euclidiano extendido

Principio del algoritmo: si a y b son números enteros positivos, hay enteros x, y tales que mcd (a, b) = ax + by; en
términos sencillos, mcd (a, b) se puede expresar como una combinación lineal de enteros de a y B.

Da un ejemplo simple:
mcd (10, 24) = 2
2 = 10 * (- 7) + 24 * 3

Las principales aplicaciones son las siguientes:

  1. Resuelva la ecuación indeterminada;
    ejemplo: encuentre un conjunto de soluciones enteras de 435x + 783y = 87:

    Primero pasa por el algoritmo de Euclides:

     783 = 1× 435 + 348
     435 = 348×1 + 87
     348 = 87 × 4 + 0
     ∴ 87 = 435 – 348
     87 = 435 – (783 – 435)
     87 = (–1)(783) + 2(435)
     ∴ x = 2, y = −1是此不定方程的一组整数解。
    
  2. Resuelva el elemento inverso del módulo (elemento inverso multiplicativo), consulte el artículo anterior sobre ecuaciones de congruencia, funciones de Euler, elementos inversos multiplicativos e inversión matricial definida en Zm ;

  3. Resolver ecuaciones lineales modulares (ecuaciones de congruencia lineal);

    1. Resolver la ecuación de congruencia ax ≡ b (mod m), x =?
      Tome un ejemplo extremadamente representativo: 15x = 1 mod 26 Este
      problema se transforma en 15x-26y = 1 se puede usar como 1 para resolver la ecuación indefinida, o como 2 Encuentra el inverso multiplicativo

       解法如下:
       26 = 1× 15 + 11
       15 = 11×1 + 4
       11 = 4 × 2 + 3
       4 = 1 × 3 + 1
       3 = 1 × 3 
       
       ∴ 1 = 4 – 3
       	  = 4 – (11 – 4×2)
       	  = 4×3 – 11
       	  = (15-11) ×3 - 11
       	  = 15×3 - 11×4
       	  = (26-11)×3 - 11 ×4
       	  = 26×3 - (26 - 15)×7
       	  =26×(-4) + 15×7
       ∴ x = 7, y = −4 为此不定方程的一组整数解,15关于模26的乘法逆元为7
      
    2. Resuelva el sistema de ecuaciones de congruencia y continúe observando el teorema del resto chino

Teorema del resto chino

Hay una pregunta en "Sun Tzu Suan Jing": "Hoy hay cosas de las que no se sabe el número, quedan dos de las tres o tres (dividen por 3 y quedan 2), y quedan
tres de las cinco y quedan cinco (dividir por 5 y quedar 3), siete o siete. Dos de los números restantes (dividir entre 7 quedan 2), ¿qué ocurre?

El matemático de la dinastía Song Qin Jiushao dio una respuesta completa y sistemática al problema de "las cosas no conocen el número" en el Volumen 1 y 2 de "Nueve Capítulos de Matemáticas" en 1247. Cheng Dawei, matemático de la dinastía Ming, compiló la solución en el sencillo "Sun Tzu Ge Jue":

三人同行七十稀,
五树梅花廿一支,
七子团圆正半月,
除百零五便得知。

Significa que mientras quede un 1 después de dividir por 3, se agregará un 70;
mientras quede un 1 después de dividir entre 5, se agregará un 21;
mientras que quede un 1 después de dividir por 7, se agrega un 15. Luego suma.
Finalmente, calcule el resto de esta suma dividido por 105.
Es decir (2 × 70 + 3 × 21 + 15 × 2) mod 105 = 23

La solución es la siguiente:

Primero, averigüe los números más pequeños 15, 21, 70 que se dividen entre 7, 5 y 3 de los múltiplos comunes de 3 y 5, 3 y 7, 5 y 7, respectivamente (este paso también se llama "módulo inverso" Operación, consulte la solución del elemento inverso de la multiplicación). Es decir:
15 ÷ 7 = 2 …… Restante 1,
21 ÷ 5 = 4 …… Restante 1,
70 ÷ 3 = 23 …… Restante 1.
Luego, use los tres números más pequeños encontrados para multiplicar el número requerido por 7. El producto del resto obtenido al dividir, 5 y 3 se suma continuamente,
15 × 2 + 21 × 3 + 70 × 2 = 233.
Finalmente, divide 233 por el mínimo común múltiplo de los tres divisores de 3, 5 y 7.
233 ÷ 105 = 2 ...... El resto es 23,
este resto 23 es el número más pequeño que cumple las condiciones.

Extienda a la situación general:
suponiendo que los enteros m1, m2,…, mn son primos entre sí, entonces para cualquier entero: a1, a2,…, un sistema de ecuaciones:
Inserte la descripción de la imagen aquí
hay soluciones enteras, y si X, Y satisfacen el sistema de ecuaciones , Debe haber X ≡ Y (mod N) donde: La
Inserte la descripción de la imagen aquí
fórmula es la siguiente:
Inserte la descripción de la imagen aquí

Realmente no quiero mirar los símbolos de fórmulas en el libro de texto. Tomemos la tarea y demos dos ejemplos.

Tarea 1:

Resuelve el sistema de ecuaciones de congruencia:
x ≡ 12 (mod 25)
x ≡ 9 (mod 26)
x ≡ 23 (mod 27)

Las ecuaciones anteriores son equivalentes ax = 25a + 12 = 26b + 9 = 27c + 23.
Cambia los términos para obtener:
①: 25a-27c = 23-12 = 11
②: 26b-25a = 12-9 = 3

En primer lugar, use Euclidean para expandir Euclidean:

27 = 25×1 + 2
25 = 2×7 + 11
则: 
11 = 25 - 2×7
	 = 25 - (27-25) ×7
	 = 25×8 - 27×7
所以a=8, c=7 
代入x = 25a + 12  = 27c + 23 得:
x = 212

Obtener la ecuación combinada x = 212 + 25 × 27t, es decir: x ≡ 212 (mod 675)
y luego fusionar con x ≡ 9 (mod 26)

x = 212 + 675t = 26b + 9
26b - 675t = 203
675 = 26×25+25
25 = 25×1
所以:  
203 = (26-25)×203
	= (26 - (675-26*25))×203
	=  26×5278 - 675×203
b=5278 , t=203
代入得x = 137237

Se obtiene la ecuación combinada x = 137237 + 25 × 27 × 26t: x ≡ 137237 (mod 17550), x = 14387
x = 14387 + 17550n (n∈Z)

Tarea 2:

Resuelve las siguientes ecuaciones de congruencia:
13x ≡ 4 (mod 99)
15x ≡ 56 (mod 101)

Este tipo de ecuaciones de congruencia con coeficientes hace que la gente sea desalentadora, pero no evita el uso de euclidianas extendidas,
primero elimine los coeficientes:
x ≡ 46 (mod 99)
x ≡ 98 (mod 101)

求解方法很多,这里列举利用二元一次不定方程方法:
13x ≡ 4 (mod 99) 转化为 13x-99y = 4
然后用拓展欧几里德:
13×46-99×6 = 4
x=46, y=6
所以不定方程13x-99y = 4 的所有解为
x=46 + 99t
y=6+13t
所以原同余方程解为:x ≡ 46 (mod 99)

Elimina x para obtener: 99a-101b = 52
Expande Euclidiana para caminar contigo: x = 7471 (mod 9999)
x = 9999 n + 7471 (n ∈ Z)

Supongo que te gusta

Origin blog.csdn.net/Pioo_/article/details/111154372
Recomendado
Clasificación