Algorithm 浮动指数求幂算法
我必须编写一个算法,在整数或浮点参数中对基(整数或浮点)求幂。我为洪水(zoho.com)编写了这个算法,但它只能使用整数指数:Algorithm 浮动指数求幂算法,algorithm,math,zoho,exponentiation,Algorithm,Math,Zoho,Exponentiation,我必须编写一个算法,在整数或浮点参数中对基(整数或浮点)求幂。我为洪水(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)
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;
}
(洪水没有增强运算符或功能)。谢谢 好吧,17个多小时没有回复,我终于找到了我自己问题的答案: 以最简单的方式,我们可以使用“e”的值乘以数字除以索引的对数来解决问题: e^(日志(编号)/索引) 其中,number是半径,index是所需的根 例如:数字1024的第10个根: e^(对数(1024)/10)=2 PS:日志函数的基础也是“e”。 “e”的舍入值为:2.718281828459045
我希望这个技巧对你有用。好吧,17个多小时没有回复,最后我找到了我自己问题的答案: 以最简单的方式,我们可以使用“e”的值乘以数字除以索引的对数来解决问题: e^(日志(编号)/索引) 其中,number是半径,index是所需的根 例如:数字1024的第10个根: e^(对数(1024)/10)=2 PS:日志函数的基础也是“e”。 “e”的舍入值为:2.718281828459045
我希望这项技术对您有用。假设您可以使用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;
}
}
double-EPS=0.0001;
双指数运算(双基,双经验){
如果(exp>=1){
双温=指数运算(基数,exp/2);
返回温度*温度;
}否则{
双低=0;
双高=1.0;
双sqr=sqrt(基准);
双acc=sqr;
双中=高/2;
而(工厂(中期出口)>每股收益){
sqr=sqrt(sqr);
如果(mid假设可以使用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;
}
}
double-EPS=0.0001;
双指数运算(双基,双经验){
如果(exp>=1){
双温=指数运算(基数,exp/2);
返回温度*温度;
}否则{
双低=0;
双高=1.0;
双sqr=sqrt(基准);
双acc=sqr;
双中=高/2;
而(工厂(中期出口)>每股收益){
sqr=sqrt(sqr);
if(mid)你没有得到答复,因为你的问题标记不好。我希望你给我建议其他标记。对于我的分数,我不能创建新标记。你没有得到答复,因为你的问题标记不好。我希望你给我建议其他标记。对于我的分数,我不能创建新标记。