Ir al contenido principal

Tarea #4 - Codigo Adaptativo

Para esta semana se nos encargo un método de compresión que se adaptara según la entrada.

La idea es que el programa lea una cadena en paquetes y cuando el paquete llegue a cierto limite el python sea capaz de comprimirlo y enviarlo. La variante es que se tiene que estar adaptando según el paquete de entrada.

La idea que yo tengo/tenia era tomar la frecuencia de las letras del alfabeto español y con el primer paquete que le llegue al python hacer lo siguiente:

1.- Identificábamos las letras únicas del paquete y las ordenábamos por frecuencias de apariciones.
2.- Sustituíamos o creábamos otra lista(conservando el orden) pero ahora con el agregábamos el  valor de la probabilidad del que la letra apareciera en el alfabeto español.
3.- Escogíamos un umbral que fuera el promedio de la suma de frecuencias del alfabeto
4.- Por cada paquete se aseguraba que la letra no estuviera ya anteriormente en el grafo, esto para eliminar el ruido de que haya repetidos.
5.- El nodo "padre" tenia un nombre único que fuera incapaz de confundirse y agregábamos los nodos con la siguiente regla.... "Si el valor el MAYOR al valor del nodo actual se agrega en la DERECHA; si es MENOR en la IZQUIERDA.
6.- Esto produciría un árbol que crece según la entrada y se acomoda según la frecuencia de las letras que aparecen en el pedazo de mensaje.
7 .- Con el árbol ya creado, lo único que faltaría seria recorrerlo para obtener el código para comprimir y lo mismo pero al revés para descomprimirlo.

Pero al intentar codificar esto tuve varios errores con lógica porque mis neuronas necesitan recargarse, pero bueno, se hizo un intento y se logro un avance parcial.
Estas son los fragmentos parciales mas importantes del programa.





Comentarios

  1. La idea tiene potencial. 3 por el reporte, 2 por el avance parcial del código.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Pequeño Juego con LEDS y Dip Switch

Siguiendo con los mini-proyectos, lo que quería hacer originalmente era un tipo "candado" con push-button y LEDs, el objetivo seria, meter la combinacion de botones correcta y los LEDS encendería por un motivo practico, en forma de serpiente. El objetivo no cambio, pero por falta de "material" lo hice con un dip switch de X entradas(depende de que tan grande quieras la combinación). CONOCIMIENTOS(max. 7 estrellas): Electronica:     ★ ★ Programación: ★ ★ Juego de Combinación + LEDs El programa es un poco mas complicado que el mini-proyecto pasado , pero aun asi es basico. Guardamos las salidas de los LEDs en un arreglo, despues con los valores recibidos y comparados de los dip switch jugamos con los LEDś. Hardware Requerido (1) Arduino Uno (6) LED (8) Resistencias 330 Ω (1) Dip Switch Circuito Usamos las salidas del ARduino 2-7 para los LEDS Usamos la salida A5, A4 para el dip switch Para hacer prender los LEDS tienes que encontrar la

Tarea #5 - Codigo Hamming - Python

Codigo hamming Liga al repo Teoria segun wikipedia Antes de los códigos Hamming se utilizaron ciertos códigos detectores de error, como lo fueron el código linteing, pero ninguno llegó a ser tan eficaz como los de Hamming. A continuación se describen algunos de estos códigos. Paridad   La   paridad   consiste en añadir un bit, denominado   bit de paridad , que indique si el número de los bits de valor 1 en los datos precedentes es par o impar. Si un solo bit cambiara por error en la transmisión, el mensaje cambiará de paridad y el error se puede detectar (nótese que el bit donde se produzca el error puede ser el mismo bit de paridad). La convención más común es que un valor de paridad   1   indica que hay un número impar de unos en los datos, y un valor de paridad de   0   indica que hay un número par de unos en los datos. info. completa y un vídeo que me ayudo mucho para esta tarea: (TIENEN QUE VERLO - OBLIGATORIO) http://www.youtube.com/watch?v=xiDPFm9PeLU Impleme

Potenciometro + pushboton + led

Bueno, estos días he estado practicando con los ejemplos de la pagina de Arduino , algunos que me llamaron la atención los voy a compartir, por supuesto con modificaciones. Nivel de conocimientos: Electronica:        ★   Programació n :    ★    Potenciometro + push-boton = LEDintensidad El mini-proyecto es controlar la intensidad de un LED mediante un potenciometro el cual combinado con push-botton para prenderlo o apagarlo. Hardware Requerido (1) Arduino UNO (1) Potenciometro (1) Push-boton (1) LED (1) Resistencia 330 Ω Circuito Conectamos el LED al PIN 9 del Arduino Conectamos el PUSH_BOTON al PIN ANOLOGICO 0 (A0) Conectamos el POTENCIOMETRO al PIN ANOLOGICO 1 (A1) El funcionamiento del circuito es basico, mientras tengas pulsado el Push-Boton el LED se mantendrá encendido y con el pontenciometro controlas la intensidad del LED. Código Video