当前位置:  开发笔记 > 编程语言 > 正文

如何从自身的力量等于n的na数中获得?

如何解决《如何从自身的力量等于n的na数中获得?》经验,为你挑选了1个好方法。

我有一个整数n,我想得到一个数字,它提升到自身的力量等于n.我怎样才能做到这一点?



1> Salix alba..:

所以我们想解决这个问题x^x = n.这与找到相当于的n = n的n的根是完全不同的y^n = n.

查看权力时要做的第一件事就是现在使用自然日志来考虑日志 x ln x = ln n.这对我们没有多大帮助,并且它不是标准函数,因此需要某种形式的收敛程序,我们想要解决f(x) = x ln x - ln n = 0.这个函数很好地单调增加比x快一点,所以它应该很容易解决.

我们可以使用牛顿的方法.首先找到衍生物 f'(x) = log x + 1.从猜测开始,x1将会有更新的猜测x2 = x1 - f(x1) / f'(x).如果你这样做了几次它应该很好地收敛.在我的实验发现x,使得x^x = 21它仅仅用了不到6个itterations收敛.

在psudocode

x[0] = ln(n);
for(i=0; i<6;++i ) {
    fx = x[i] * ln( x[i] ) - ln(n); 
    df = ln( x[i] ) + 1;
    x[i+1] = x[i] - fx / df;
}
println(x[6], pow(x[6], x[6]))

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有