Power of a given number, x is a mathematical operation, written as x^n. involving two numbers, the base x and the exponent (or index or power) n. When n is a positive number, exponentiation corresponds to repeated multiplication in other words, a product of n factors. For example, 5^4 = 5*5*5*5 =625
Power of a given number x raised to an exponent n is pow(x,n). Power function, pow(x,n) in Java implemented as native function using bit wise calculations of numbers for faster calculation.
Implementation in Math.java
public static double pow(double a, double b) {
return StrictMath.pow(a, b); // default impl. delegates to StrictMath
}StrictMath.java
public static native double pow(double a, double b);
Power function Recurrence relation or Algorithm is as below.
p(x,n) = 1 if(x=0)
= x*p(x,n-1) if(n>0)
= (1/x)*p(x,n+1) if(n<0) Pow(x,n) implementation in Java using Recursion
Here is the implementation for power of a given number using recursion in java
package com.jminded.recursion;
public class ComputePowerUsingRecursion {
/**
* @author Umashankar
* {@link https://jminded.com}
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(computePower(2,5));
System.out.println(computePower(2,-5));
System.out.println(computePower(-2,5));
System.out.println(computePower(-2,-5));
}
/**
* <p>Compute power</p>
*
* p(x,n) = 1 if(x=0)
* = x*p(x,n-1) if(n>0)
* = (1/x)*p(x,n+1) if(n<0)
* @param x
* @param n
* @return
*/
public static double computePower(double x, double n){
//base case
if(n==0){
return 1;
}else if(n>0){ //recursive condition for postive power
return x*computePower(x, n-1);
}else if(n<0){ //recursive condition for negative power
return (1/x)*computePower(x, n+1);
}else{
return -1;
}
}
}Output:
32.0
0.03125
-32.0
-0.03125