gpt4 book ai didi

algorithm - 浮点指数求幂算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:42 31 4
gpt4 key购买 nike

我必须编写一种算法,对整数或 float 参数中的基数(整数或 float )取幂。我为 Deluge (zoho.com) 编写了这个算法,但它只能使用整数指数:

float math.potencia(float base, int expoente)
{
if(expoente>0)
{
base = base * thisapp.math.potencia(base, (input.expoente - 1));
}
else if (expoente == 0)
{
base = 1;
}
return base;
}

(Deluge 没有增强运算符或函数)。谢谢!

最佳答案

假设可以使用sqrt,可以使用如下算法:

double EPS = 0.0001;

double exponentiation(double base, double exp) {
if(exp >= 1) {
double temp = exponentiation(base, exp / 2);
return temp * temp;
} else {
double low = 0;
double high = 1.0;

double sqr = sqrt(base);
double acc = sqr;
double mid = high / 2;

while(fabs(mid - exp) > EPS) {
sqr = sqrt(sqr);

if (mid <= exp) {
low = mid;
acc *= sqr;
} else {
high = mid;
acc *= (1 / sqr);
}

mid = (low + high) / 2;
}

return acc;
}
}

关于algorithm - 浮点指数求幂算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432075/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com