我正在尝试使用以下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只有自然对数和以10为底的对数。我正在尝试使用换底公式来获取letterFrequencies[i]的以2为底的对数。我不知道我是否正确地实现了它,因为我期望得到接近4.18的答案,但实际上得到的是大约0.028。
letterFrequencies
的内容是什么? - tmyklebu