我有一个简单的问题。我试图在java中制作欺诈检测应用程序,该应用程序将主要基于本福德定律。本福德的定律非常酷,它基本上可以解释为在真实的金融交易中,第一个数字通常是1,2或3,很少是8,9。我无法得到本福德公式翻译成可以用Java运行的代码。
http://www.mathpages.com/home/kmath302/kmath302.htm此链接提供了有关本福德法律及其使用方式的更多信息。
我知道我必须使用java数学类才能使用自然日志功能,但我不知道该怎么做。任何帮助将不胜感激。
非常感谢!!
答案 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)));