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

如何用递归计算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条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器