weixin_42042460
2018-04-22 11:52
采纳率: 63.6%
浏览 933
已采纳

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

如何在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)
我自己的程序精度太差而且返回的都是整数

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • 默默悟问 2018-04-23 05:55
    最佳回答

    另外推导的:
    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);
    }
    }

    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题