Java中的Benford定律 - 如何将数学函数转换为Java

时间:2011-10-18 23:58:51

标签: java function math syntax benfords-law

我有一个简单的问题。我试图在java中制作欺诈检测应用程序,该应用程序将主要基于本福德定律。本福德的定律非常酷,它基本上可以解释为在真实的金融交易中,第一个数字通常是1,2或3,很少是8,9。我无法得到本福德公式翻译成可以用Java运行的代码。

http://www.mathpages.com/home/kmath302/kmath302.htm此链接提供了有关本福德法律及其使用方式的更多信息。

我知道我必须使用java数学类才能使用自然日志功能,但我不知道该怎么做。任何帮助将不胜感激。

非常感谢!!

3 个答案:

答案 0 :(得分:5)

答案 1 :(得分:4)

如果我理解正确,你想要用Java语法编写Benford公式吗?

public static double probability(int i) {   
    return Math.log(1+(1/(double) i))/Math.log(10);
}

请记住插入

import java.lang.Math;
包裹申报后

我觉得很可疑没有人回答这个问题....> _>

答案 2 :(得分:1)

我认为你要找的是这样的:

for(int i = (int)Math.pow(10, position-1); i <= (Math.pow(10, position)-1); i++)
        {
           answer +=  Math.log(1+(1/(i*10+(double) digit)));
        }

answer *= (1/Math.log(10)));