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