私はついにシャノンエントロピーの計算を行うコードを見つけましたが、C#を完全に理解していないので、 ?私は純粋にコードを理解していて、何をしているのではないのですか?私はあなたが尋ねるならば、デルファイを理解しています。このC#コードを理解すると、エントロピーの理論ではなく、コードだけを意味する
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;
}
「コードについて」は不明ですか?メソッド、2つのループのシーケンス、いくつかの変数の代入、辞書、いくつかの数学..非常に手続き型、Delphiのようなものがあります。 – user2864740
@ user2864740辞書は私には分かりません – Vlastimil
これはDelphiのTDictionaryと同じ役割を持っています:http://delphi.about.com/od/beginners/a/using-t-dictionary-hash-tables-in-delphi .htm - http://www.dotnetperls.com/dictionary、https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspxなどを参照してください。 – user2864740