1
我想创建一个应用程序,将弄清楚如何找到第n个位置上的数字benfords法律,到目前为止,我还没有能够做到这一点。我可以在第一个位置找到号码,但之后我不确定。下面是本福特定律的资源:爪哇Benfords法
http://www.mathpages.com/home/kmath302/kmath302.htm
有什么我想在最底部(最后一个公式)做的,但我似乎无法让它进入代码工科数学公式。
这是我做的第一个数字在任何给定的位置:
public static double probability(int position, int digit)
{
double result = Math.log(1+(1/(double) digit))/Math.log(10);
return result;
}
任何想法如何实现它的总结部分?我非常肯定它会涉及到for循环,但是当我尝试它时似乎并不奏效。
编辑--------------------------------------------- -------------------------------------------
感谢tskuzzy's答案我找到了答案。这是你会怎么做它在Java中:
public static double probability(int position, int digit) {
double p = 0.0;
for(int k = (int) Math.pow(10,position-1); k < Math.pow(10,position); k++)
{
p += Math.log(1+1.0/(k*10 + digit));
}
return p/Math.log(10);
}
那是一个伟大的想法,但你不能使用双在for循环和如果你将k作为一个整数,它不会以数学方式工作,因此不会返回正确的答案... – Rmyers
等待我尝试了错误的方式......这实际上是正确的答案。谢谢! – Rmyers