我嘗試使用下面的Java函數來計算英文熵日誌基地2 Java進行雙打
public static void calculateEntropy()
{
for(int i = 0; i < letterFrequencies[i]; i++)
{
entropy += letterFrequencies[i] * (Math.log(letterFrequencies[i])/Math.log(2));
}
entropy *= -1;
}
我使用的公式需要數底2,但Java只有自然對數和日誌base 10.我試圖使用基本公式的變化來獲取letterFrequencies [i]的日誌基2。我不知道我是否正確實施它,因爲我期望接近4.18的答案,而是大致獲得.028
@turbo OP使用此公式:http://en.wikipedia.org/wiki/Logarithm#Change_of_base – 2015-02-09 16:12:41
可能不是一個dup,但與您的情況有關:http://stackoverflow.com/q/3305059/1065197 – 2015-02-09 16:12:59
確保所有其他部件實際上按預期工作。你可能試圖解決錯誤的問題。我會刪除日誌部分來檢查值是否是預期的。 – Voicu 2015-02-09 16:27:42