En este artículo, implementaremos la codificación Elias Delta usando python.
Sintaxis:
Codificación Elias Delta(X)= Codificación Elias Gamma (1+piso(log2(X))) + Representación binaria de X sin MSB.
Implementación
Primero, vamos a implementar la codificación Elias delta, antes de escribir el código para la codificación Elias Delta.
Paso 1:
- Importe funciones de registro y piso de la biblioteca matemática para realizar operaciones logarítmicas.
- Obtenga la entrada k del usuario para codificar en Elias Gamma.
- Usando las funciones de piso y registro en el módulo matemático, encuentre 1+piso (log2 (X) y guárdelo en la variable N.
- Encuentre la codificación unaria de N, usando (N-1)*’0’+’1′, lo que nos da una string binaria con ‘1’ en un bit menos significativo y N-1 ‘0’ en los restantes bits más significativos.
Ejemplo: codificación Elias Gamma para algún valor
Python3
def EliasGammaEncode(k): if (k == 0): return '0' N = 1 + floor(log(k, 2)) Unary = (N-1)*'0'+'1' return Unary + Binary_Representation_Without_MSB(k)
Paso 2:
- Cree una función que tome la entrada X y proporcione el resultado como una representación binaria de X sin MSB.
- Usando “{0:b}”.format(k) encuentre el equivalente binario de k y guárdelo en una variable llamada binary.
- El prefijo cero solo especifica qué argumento de format() debe usarse para completar el {}.
- b especifica que el argumento debe convertirse a formato binario.
- Devuelve la string binary[1:] que es una representación binaria de X sin MSB.
Ejemplo: representación binaria sin MSB
Python3
def Binary_Representation_Without_MSB(x): binary = "{0:b}".format(int(x)) binary_without_MSB = binary[1:] return binary_without_MSB
Ahora vamos a escribir código para Elias Delta Encoding
Paso 3:
- Obtener la entrada k del usuario para codificar en Elias Delta.
- Usando las funciones de piso y registro en el módulo matemático, encuentre 1+piso (log2 (k).
- Pase el resultado de 1+piso(log2(k) a la función de codificación Elias Gamma.
Ejemplo : Codificación Elias Delta para algún valor
Python3
def EliasDeltaEncode(x): Gamma = EliasGammaEncode(1 + floor(log(k, 2))) binary_without_MSB = Binary_Representation_Without_MSB(k) return Gamma+binary_without_MSB k = int(input('Enter a number to encode in Elias Delta: ')) print(EliasDeltaEncode(k))
Paso 4:
- Obtenga el resultado de la codificación Elias Gamma y la representación binaria de k sin MSB
- Concatenar ambos resultados e imprimirlos en la consola
Código completo para producir la codificación Elias Delta para algún valor entero
Python3
from math import log from math import floor def Binary_Representation_Without_MSB(x): binary = "{0:b}".format(int(x)) binary_without_MSB = binary[1:] return binary_without_MSB def EliasGammaEncode(k): if (k == 0): return '0' N = 1 + floor(log(k, 2)) Unary = (N-1)*'0'+'1' return Unary + Binary_Representation_Without_MSB(k) def EliasDeltaEncode(x): Gamma = EliasGammaEncode(1 + floor(log(k, 2))) binary_without_MSB = Binary_Representation_Without_MSB(k) return Gamma+binary_without_MSB k = 14 print(EliasDeltaEncode(k))
Producción:
00100110
Publicación traducida automáticamente
Artículo escrito por vinayedula y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA