necesito un codigo en cchar y asp...

karli
05 de Febrero del 2005
necesito que me ayuden a programar el siguiente ejercicio:
1. Desarrolle un software que permita realizar una compresin de tipo estadstica (Shannon-Fano) para una cadena que ser entrada por el usuario, la tabla de probabilidades debe ser elaborada por el programa. La cadena resultante debe guardarse tambin en fichero pero en formato binario con la correspondiente secuencia y el programa debe brindar tambin servicio de recuperacin del texto en claro para este procedimiento. Debe el software ofrecer una medida de la eficiencia de la codificacin empleada...
la explicacion del metodo es la sgte:
Cdigo de Shannon-Fano

Sean n smbolos si (i=1,2,...,n) de probabilidades Pi distribuidas en orden decreciente. El mtodo procede de la forma siguiente:

1. Se toman los caracteres de ms alta probabilidad y se obtienen dos subconjuntos, de tal modo que las sumas de las probabilidades de cada grupo sean, en la medida de lo posible, iguales.
2. A todos los smbolos de la mitad superior se les agrega como primer smbolo del alfabeto de cdigo el 1 (o el cero) y a los inferiores el smbolo 0 (o el 1).
3. Los dos subconjuntos se dividen a su vez en dos subgrupos con iguales probabilidades sumarias.
Se repite desde el primer paso.


En general: El cdigo se construye de la forma siguiente: Los mensajes se colocan en una tabla en orden creciente de probabilidades. Despus , estos se dividen en r grupos (r es la base del cdigo elegido para codificar ) de forma tal que la suma de las probabilidades, en cada grupo, sea casi igual . A cada mensaje de estos grupos se le asocia como primer smbolo de la palabra codificada uno de los r smbolos del cdigo Cada uno de los grupos se le asocia como primer smbolo de la palabra codificada, uno de los r smbolos del cdigo. Cada uno de los grupos obtenidos es dividido a su vez en r subgrupos con probabilidades lo ms parecidas posibles.
El proceso continua hasta que en cada grupo queden r mensajes.



Ejemplo.
Obtener el cdigo de Shannon-Fano para las siguientes letras del alfabeto s ={s1,s2,...,s8}

si P(si) Palabras cdigo
s1 0,22 11
s2 0,20 101
s3 0,16 100
s4 0,16 01
s5 0,10 001
s6 0,10 0001
s7 0,04 00001
s8 0,02 00000

El cdigo obtenido as es eficiente, ya que a los smbolos de probabilidades ms altas le corresponden las palabras-cdigos ms cortas.
( pubicarlo aqui), no enviarlo por correo...