Ich fand schließlich einen Code möglicherweise Shannon Entropy Berechnung funktioniert, aber da ich C# überhaupt nicht völlig verstehe, könnte jemand mir helfen, es vollständig zu begreifen ? Ich meine rein den Code zu verstehen, NICHT was er tut. Ich verstehe Delphi, wenn du fragst.Verständnis dieses C# -Codes, ich meine nur den Code, nicht die Theorie von Entropie
public static double ShannonEntropy(string s)
{
var map = new Dictionary<char, int>();
foreach (char c in s)
{
if (!map.ContainsKey(c))
map.Add(c, 1);
else
map[c] += 1;
}
double result = 0.0;
int len = s.Length;
foreach (var item in map)
{
var frequency = (double)item.Value/len;
result -= frequency * (Math.Log(frequency)/Math.Log(2));
}
return result;
}
"Was" über den Code ist unklar? Es gibt eine Methode, zwei Schleifen über Sequenzen, einige Variablen mit Zuweisungen, ein Dictionary und etwas Mathe. Sehr prozedural, wie Delphi. – user2864740
@ user2864740 das Wörterbuch ist mir unklar – Vlastimil
Es hat die gleiche Rolle wie ein TDictionary in Delphi: http://delphi.about.com/od/beginners/a/using-t-dictionary-hash-tables-in-delphi .htm - siehe http://www.dotnetperls.com/dictionary, https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx usw. – user2864740