0Pricing
Competitive Programming Academy · Lección

Trabaje módulo un primo

Sume, multiplique y manténgase dentro del módulo

Trabaje módulo un primo es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.

Por qué usar el módulo

Las respuestas de los concursos pueden crecer enormemente, mucho más allá de cualquier tipo entero disponible. Por eso, los problemas piden el resultado módulo un primo grande para mantener pequeños los números. 🔢

Conozca el módulo famoso

El primo que verá con mayor frecuencia es 1000000007, que a menudo se escribe como 1e9+7. Es lo bastante grande para evitar colisiones y lo bastante pequeño para caber en 64 bits.

MOD = 1000000007

Qué significa módulo

El operador módulo devuelve el resto de una división. Por tanto, 17 % 5 es 2, porque al dividir 17 entre 5 queda un resto de 2.

print(17 % 5)  # 2

La suma se mantiene dentro

Puede sumar primero y aplicar el módulo al final, o hacerlo progresivamente. El resto será el mismo en ambos casos, así que redúzcalo con frecuencia para mantenerlo pequeño.

total = (a + b) % MOD

La multiplicación también se mantiene dentro

La misma regla se aplica a la multiplicación: tome el producto módulo el primo. Python gestiona los enteros grandes de forma nativa, pero aplicar el módulo mantiene cada valor pequeño y las operaciones rápidas.

prod = (a * b) % MOD

Reduzca después de cada paso

En un bucle largo, aplique % MOD en cada iteración. Así evita que los números crezcan demasiado y mantiene cada operación rápida y predecible.

ans = (ans * i) % MOD

La resta puede producir negativos

La resta puede producir un resto negativo en muchos lenguajes. Sume MOD antes de aplicar el módulo final para que el resultado quede en el rango seguro de 0.

diff = (a - b + MOD) % MOD

El módulo amigable de Python

Buenas noticias: el operador % de Python ya devuelve un resultado no negativo cuando el módulo es positivo. Por eso, -1 % 7 da 6, no -1, y no necesita corregirlo después.

print(-1 % 7)  # 6

El módulo se distribuye en las operaciones

La idea fundamental es que (a op b) % m equivale a (a%m op b%m) % m para la suma y la multiplicación. Esto permite reducir las entradas antes de combinarlas.

La división es la excepción

La suma, la resta y la multiplicación funcionan correctamente bajo un módulo. Sin embargo, la división normal no, y más adelante en este curso necesitará un inverso modular para realizarla.

Defina MOD una vez al principio

Defina MOD como una constante al principio de la solución. Un único valor con nombre es mejor que dispersar 1000000007 por el código, donde un error tipográfico podría pasar desapercibido.

MOD = 10**9 + 7

Comprobación rápida

¿Por qué hay que sumar MOD antes de aplicar el módulo a una resta?

Resumen

Ahora puede mantener pequeños los conteos enormes usando un módulo primo como 1e9+7. Reduzca la suma, la resta y la multiplicación en cada paso, tenga en cuenta los valores negativos y reserve la división para los inversos. 🎯

Preguntas frecuentes

¿La lección «Trabaje módulo un primo» es gratis?

Sí — el texto completo de «Trabaje módulo un primo» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Trabaje módulo un primo»?

Sume, multiplique y manténgase dentro del módulo Practicas Competitive Programming Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Competitive Programming Academy?

No se requiere experiencia previa. Competitive Programming Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Trabaje módulo un primo»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Competitive Programming Academy?

Sí. Cada lección de Competitive Programming Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Trabaje módulo un primo
  2. Exponenciación modular rápida
  3. Inverso modular mediante Fermat
  4. nCr con factoriales precalculados
← Volver a Competitive Programming Academy