亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何用遞歸計算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 關注
  • 189 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號