Ejemplos Prácticos de Módulo
Aplicaciones del Módulo en el Mundo Real
1. Detección de Números Pares e Impares
bool isEven(int number) {
return number % 2 == 0;
}
bool isOdd(int number) {
return number % 2 != 0;
}
2. Indexación de Arrays Cíclicos
graph LR
A[Índice de Entrada] --> B[Operación Módulo]
B --> C[Acceso al Array Circular]
class CircularBuffer {
private:
std::vector<int> buffer;
int size;
public:
int getCircularIndex(int index) {
return index % size;
}
}
Cálculos de Tiempo y Relojes
int convertTo12HourFormat(int hour) {
return hour % 12 == 0 ? 12 : hour % 12;
}
Generación de Números Aleatorios
4. Generación de Números Aleatorios en un Rango
int generateRandomInRange(int min, int max) {
return min + (rand() % (max - min + 1));
}
Distribución de Datos
5. Distribución en Tablas Hash
| Operación |
Descripción |
| Índice Hash |
index = key % tableSize |
| Equilibrio de Carga |
Distribuir datos uniformemente |
Criptografía y Seguridad
6. Función Hash Simple
unsigned int simpleHash(std::string input) {
unsigned int hash = 0;
for (char c : input) {
hash = (hash * 31 + c) % UINT_MAX;
}
return hash;
}
Desarrollo de Juegos
7. Ciclado de Animación de Sprites
class SpriteAnimator {
private:
int totalFrames;
int currentFrame;
public:
int getNextFrame() {
return ++currentFrame % totalFrames;
}
}
Optimización de Rendimiento
8. Módulo Bit a Bit para Potencias de 2
// Módulo más rápido cuando el divisor es una potencia de 2
int fastModulo(int value, int divisor) {
return value & (divisor - 1);
}
Coincidencia de Patrones Avanzados
9. Detección de Patrones Periódicos
bool hasRepeatingPattern(std::vector<int>& sequence, int patternLength) {
for (int i = 0; i < sequence.size(); ++i) {
if (sequence[i] != sequence[i % patternLength]) {
return false;
}
}
return true;
}
¡Desbloquea el poder de las operaciones módulo con LabEx, donde la codificación se convierte en un arte de precisión!