> elias | omega | asintótico <
// Elias Omega: código asintóticamente óptimo para enteros arbitrariamente grandes
Asintóticamente óptimo
Se acerca al mínimo teórico para números grandes.
Estructura recursiva
Codifica longitudes de forma recursiva y elegante.
Código universal
Funciona para cualquier entero positivo sin parámetros adicionales.
>> información técnica
Cómo funciona Elias Omega:
Elias Omega codifica recursivamente la longitud de un número hasta llegar a 1. A partir de n se codifica log₂(n), luego log₂(log₂(n)) y así sucesivamente hasta 1. El código se construye con estos valores en orden inverso y termina con 0. Esto produce log(n) + log(log(n)) + log(log(log(n))) + ... bits.
Proceso de codificación Omega:
n=16: 16 → binario: 10000 (longitud 5) 5 → binario: 101 (longitud 3) 3 → binario: 11 (longitud 2) 2 → binario: 10 (longitud 2) 1 → fin Construir el código hacia atrás: Empezar con 0 (terminador) Anteponer 10 (codifica 2) Anteponer 11 (codifica 3) Anteponer 101 (codifica 5) Anteponer 10000 (codifica 16) Resultado: 10 11 101 10000 0 Comparar eficiencia: n=100: Gamma=13, Delta=12, Omega=10 bits n=1000: Gamma=19, Delta=16, Omega=14 bits
Por qué usar Elias Omega:
- ▸Ideal para números muy grandes
- ▸Comportamiento asintóticamente óptimo
- ▸Importancia teórica en codificación de enteros
- ▸Sin bits desperdiciados en el límite
- ▸Estructura recursiva elegante
>> preguntas frecuentes
¿Qué es la codificación Elias Omega?
Elias Omega es el código de Elias más sofisticado y utiliza codificación recursiva de longitudes para lograr optimalidad asintótica. Codifica la longitud de la representación, luego la longitud de esa longitud y así sucesivamente hasta llegar a 1, lo que lo hace muy eficiente para enteros muy grandes.
¿Cómo se compara Omega con Gamma y Delta?
Para números pequeños (< 10) Gamma suele ser mejor. Para números medios (10–1000) Delta mejora a Gamma. Para números grandes (> 1000) Omega se vuelve cada vez más superior. Omega utiliza iteraciones log*(n) y alcanza un comportamiento óptimo en el límite.
¿Qué es la optimalidad asintótica?
Un código es asintóticamente óptimo si la relación entre su longitud y el mínimo teórico tiende a 1 a medida que los números crecen. Omega cumple esto: length(n)/log₂(n) → 1 cuando n → ∞.
¿Por qué Omega no se usa en todas partes?
Aunque es teóricamente superior, Omega es más complejo de implementar y decodificar. Para datos reales con enteros acotados, códigos más simples como Exp-Golomb o Rice suelen ser más prácticos. Omega destaca en análisis teórico y escenarios con enteros sin cota superior.