我一直在寻找根算法,并且遇到了巴比伦算法。我非常喜欢它,因为它简单易懂。但问题是它只需要平方根,当我正在创建一个能够以任何权力取得数字根的函数时。我只是尝试采取正整数。
这是功能:
double functions::rot(double x, double y) {
double z = x;
double w = 1;
double e = 0.000001;
while (z - w > e){
z = (z + w) / 2;
w = x / z;
}
return z;
}
是你的力量。有没有人有办法改变这个算法,所以y是根的力量?例如,如果y = 3,则采用立方根。
答案 0 :(得分:0)
function iroot(k, n)
k1, u, s := k-1, n, n+1
while u < s
u := (u * k1 + n / (u ** k1)) / k
s := u
return s
警告:未经测试的伪代码。函数iroot
在自身乘以 k 次时返回不超过 n 的最大整数。