Buonasera...
Ho preparato per la tesina un bel programma che comprime i dati, e adesso (sinceramente un po' in ritardo) ho incominciato a pensare che fosse meglio anche sviluppare una parte teorica che riguardasse l'informazione e l'entropia. Premetto che nn ho ancora capito bene la differenza tra entropia e informazione (o autoinformazione), e già che ci sono vi chiedo se sapreste spiegarmelo in parole semplici...
Inoltre mi chiedevo se fosse giusto questo codice che ho scritto per calcolare l'entropia di una sorgente (supposta senza memoria, anche se in realtà lo è perchè il mio input può essere un file di testo, cioè ogni simbolo dipende dal precedente):
Codice PHP:
Hashtable h = new Hashtable();
string s = //sorgente
for (int i = 0; i < s.Length; i++)
{
if (h.ContainsKey(s[i]))
h[s[i]] = (double)h[s[i]] + 1;
else
h.Add(s[i], 1.0);
}
double sum = 0;
for (char c =(char)0; c <= (char)255; c++)
{
if (h.ContainsKey(c))
sum += ((double)h[c] / (double)s.Length)*(-Math.Log((double)h[c] / (double)s.Length, 2)) ;
}
MessageBox.Show("L'entropia vale: " + sum);
grazie a tutti