Codificación Elias Delta en Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *