Codificación unaria en Python

El código unario, también llamado a veces código de termómetro, es un tipo de codificación de entropía. Es una técnica de compresión de datos sin pérdidas con aplicación en códigos Golomb.

La representación unaria de un número natural n es n unos seguidos de un cero. Por ejemplo, el código unario para 6 será 6 unos seguidos de un cero que es 1111110

Ejemplo:

Input: 5
Output: 111110
result has 5 ones followed by a 0 

Input: 1
Output: 10
result has 1 one followed by a 0

Acercarse:

  • Para codificar: tome una lista vacía, luego agregue N veces 1 y 0 en el último, luego conviértalo en una string e imprima el resultado.
  • Para decodificar: tome una string dada y cuente el número de 1 en ella y luego imprima el resultado.

Ejemplo 1: Representación unaria de un número natural.

Python3

# Unary code encoding
N = 8
A = []
  
for i in range(N):
    A.append(1)
      
A.append(0)
  
B = [str(k) for k in A]
  
C = "".join(B)
  
print("Unary code for", N,
      'is', C)

Producción:

Unary code for 8 is 111111110

Ejemplo 2: Representación decimal de un código unario.

Python3

# Unary code decoding
  
code =  "111111110"
count = 0
  
for i in code:
    if i == "1":
        count += 1
          
print("decoded number is :", count)

Producción:

decoded number is : 8

Publicación traducida automáticamente

Artículo escrito por AmiMunshi 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 *