为了账号安全,请及时绑定邮箱和手机立即绑定

如何用递归计算Loga(n) java或者python

如何用递归计算Loga(n) java或者python

米琪卡哇伊 2018-06-28 14:18:47
如何在java或者python中不用math库而用递归写出精确度高的计算loga(n)的方法?以a为底def recursivelog(n, x, b, l=None, u=None): assert( n >= 0) assert( x >= 1) assert( isinstance(b, int) ) assert( b >= 2 ) float(x) if(x<b): return 0 else: return 1+ recursivelog(n-1,x/b,b) 我自己的程序精度太差而且返回的都是整数
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

public static double loga1(int level, double a, double n) {
if (a <= 0 || n <= 0)
return Double.NaN;
if (level > 500)
return 1;
if (a == 1) {
return Double.NaN;
} else if (a > 1) {
if (n > a) {
return 1 + loga1(level + 1, a, n/a);
} else if (n == a) {
return 1;
} else { //n < a
return 1 / loga1(level + 1, n, a);
}
} else { //a < 1
return -loga1(level + 1, 1/a, n);
}
}

查看完整回答
反对 回复 2018-07-14
?
隔江千里

TA贡献1906条经验 获得超10个赞

随便找一个程序

 double MYLOG(double a)  
{  
   int N = 15;//我们取了前15+1项来估算  
   int k,nk;  
   double x,xx,y;  
   x = (a-1)/(a+1);  
   xx = x*x;  
   nk = 2*N+1;  
   y = 1.0/nk;  
   for(k=N;k>0;k--)  
   {  
     nk = nk - 2;  
     y = 1.0/nk+xx*y;  

   }  
   return 2.0*x*y;  

}


查看完整回答
反对 回复 2018-07-14
  • 2 回答
  • 0 关注
  • 166 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信