Compresor aritmético
Los ejercicios de compresión aritmética son bastante típicos en exámenes y guías de trabajos prácticos. En un entorno de examen se resuelven a mano. Para verificar si se siguió el procedimiento correcto, este proyecto busca imitar una resolución paso a paso con papel y lápiz.
Las dependencias son mínimas, solo utilizo SymPy para trabajar con fracciones.
Los códigos a la entrada, involucrados en el algoritmo:
$$ \begin{array}{c|c|c} & \text{Codificación } \xi & \text{Decodificación } F_Z (\xi) \\ \hline \text{Representación} & z_1z_2… \text{ en base } k & y_1y_2… \text{ en base } D \\ \hline \text{Distribución} & f_Z(z_i) \text{ no uniforme } & f_Y(y_i) \text{ uniforme } \end{array} $$
Vamos a pasar por un ejemplo, si tenemos el intervalo [0,3/4,1] y la secuencia [0,0,1,1,0]:
|
|
La salida es:
|
|
Pasando los extremos del último intervalo a alguna base, se puede determinar el código final a la salida.
En este caso usamos base 2, el supremo e ínfimo (usando Qalculate! ):
|
|
Lo que implica que el código final es: [1, 0, 0, 0]
Para un ejemplo de decodificación:
Dada una distribución acumulada que ofrece el intervalo [0, 3/4, 1] con un entero 1/2, la decodificación en 5 pasos.
|
|
|
|
Ejercicios resueltos
En el repositorio también se encuentran ejercicios resueltos. Los PDF se producen mediante pandoc markdown, por la simple sintaxis y la posibilidad de introducir \(\LaTeX\) y figuras.
Machete
Es posible armar machetes de ecuaciones con pandoc markdown. Puede parecer intimidante escribir tantas ecuaciones de \(\LaTeX\) pero es posible aligerar la carga usando cosas como Mathpix Snip.