我尝试使用下面的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