// Elias Delta: código universal más eficiente que Gamma para enteros grandes
Más eficiente que Elias Gamma para enteros > 3.
Funciona con cualquier entero positivo sin parámetros adicionales.
Utiliza log₂(n) + 2log₂(log₂(n)) + 1 bits.
Elias Delta codifica un entero positivo n en tres partes: 1) Calcula L = ⌊log₂(n)⌋ + 1 (longitud en bits), 2) codifica L usando Elias Gamma, 3) añade los últimos L−1 bits de n. Este crecimiento doblemente logarítmico lo hace más eficiente que Gamma para números grandes y sigue siendo un código universal.
n=1: L=1, Gamma(1)='1', bits='', Delta='1' n=2: L=2, Gamma(2)='010', bits='0', Delta='0100' n=3: L=2, Gamma(2)='010', bits='1', Delta='0101' n=4: L=3, Gamma(3)='011', bits='00', Delta='01100' n=16: L=5, Gamma(5)='00101', bits='0000', Delta='001010000' Comparar longitudes: n | Gamma | Delta | Ahorro 1 | 1 | 1 | 0 16 | 9 | 9 | 0 100 | 13 | 12 | 1 1000 | 19 | 16 | 3
Elias Delta es una mejora sobre Elias Gamma que codifica primero la longitud de la representación binaria con Gamma y luego añade los bits restantes. Usa aproximadamente log₂(n) + 2log₂(log₂(n)) + 1 bits, por lo que es más eficiente para enteros grandes.
Gamma usa 2⌊log₂(n)⌋ + 1 bits, mientras que Delta usa log₂(n) + 2log₂(log₂(n)) + 1 bits. Delta es mejor para n > 3 y el ahorro crece con números más grandes. Para valores muy pequeños (1–3) son similares.
Usa Delta cuando tus datos contienen sobre todo enteros > 3. Para enteros muy pequeños (1–2), Gamma puede ser ligeramente mejor. Para enteros muy grandes, considera Elias Omega, que mejora todavía más a Delta.
Delta es el punto intermedio. Gamma es el más simple pero el menos eficiente. Delta mejora la compresión. Omega es el mejor para enteros muy grandes, aunque también el más complejo. Elige según la distribución de tus datos y las restricciones de implementación.