CodeGym /Blog Java /Random-ES /Usando el método Math.pow() en Java
Autor
Artem Divertitto
Senior Android Developer at United Tech

Usando el método Math.pow() en Java

Publicado en el grupo Random-ES
El lenguaje Java está equipado con una biblioteca completa para funciones y operaciones matemáticas. Se llama la clase "Matemáticas" y reside en el paquete java.lang . La biblioteca de matemáticas incluye métodos para operaciones numéricas fundamentales, trigonometría, encontrar min-max, generar números aleatorios y operaciones logarítmicas. En el tutorial de hoy, nos centraremos en el método Math.pow() , que se usa para calcular potencias de números usando una base y un exponente. Empecemos. La expresión 'n-ésima potencia de a' se puede escribir matemáticamente como n. Podemos definir los términos en las expresiones de la siguiente manera. a - base n - exponente Consideremos el exponente. Podemos identificarlo como el número de veces que se repite una operación de multiplicación. La base es el número que se multiplica por sí mismo. Uso del método Math.pow() en Java - 1Ahora creemos un método Java simple para calcular la potencia de un número. Tenga en cuenta que en el siguiente ejemplo, estamos pasando dos argumentos al método powerFunction() , que son la base y el exponente, respectivamente.

public class Main {
 
   public static void main(String[] args) {
       int result = powerFunction(2, 5);
       System.out.println("2 raised to the power of 5 = " + result);
   }
 
   static int powerFunction(int base, int exponent) {
       int result = 1;
       for (int i = 0; i < exponent; i++) {
           result = base * result;
       }
       return result;
   }
}
Si ejecutamos el código de ejemplo anterior, devolvería 32. Quizás se esté imaginando por qué no podemos simplemente escribir base^exponente. No podemos hacer eso porque Java no tiene un operador de exponenciación que podamos usar en una sola línea de código. Teniendo en cuenta el código anterior, es obvio que tuvimos que dedicar bastante tiempo a escribir este método. Además, si vamos a calcular potencias altas, el método tardará un tiempo considerable en completar estos cálculos ya que estamos usando bucles for. Además de eso, los bucles nos impedirán realizar cálculos de potencia con exponentes fraccionarios. Y este método no tiene una buena complejidad computacional, porque no es muy favorable ya que hay más espacio para la optimización. Teniendo en cuenta la frecuencia con la que los programadores utilizan la exponenciación y otras operaciones matemáticas, En el pasado, los desarrolladores de Java crearon una biblioteca llamada 'Math', que se dedica a facilitar las operaciones matemáticas. Por lo tanto, en lugar de escribir una función de potencia desde cero, podemos aprovechar esta biblioteca que se incluye en el paquete Java Lang.

¿Qué es el método Math.pow y cómo lo usamos?

Math.pow se puede encontrar en el paquete java.lang como un método de la biblioteca Math. Se utiliza para calcular la potencia de números, tanto enteros como dobles. Consideremos su sintaxis.

public static double pow(double base, double exponent)
Como podemos ver en la sintaxis, el método java.lang.Math.pow() toma dos argumentos. El primero es la base y el segundo es el exponente. Esto devolverá el exponente base como su salida. Veamos cómo podemos llamarlo.

Elevar un número a una potencia en Java usando Math.pow

Encontremos el valor de 5 4 usando Math.pow .

import java.lang.Math;
public class MyClass{
    public static void main(String []args){
       double answer = Math.pow(5, 4);
// java.lang.Math.pow() method
 
       System.out.println("5 raised to the power of 4 = " + answer);
    }    
}
La salida es 625.0. Como puedes ver, es un valor doble. Si le molesta el punto decimal, podemos deshacernos fácilmente de él convirtiendo el número en un entero de la siguiente manera. Tenga en cuenta que estamos cambiando la primera línea dentro del método principal.

 int answer = (int) Math.pow(5, 4);
Ahora el resultado es 625. Usemos números fraccionarios tanto para la base como para el exponente e intentemos obtener una respuesta. Veamos cuál es el valor de 1.25 4.5 .

import java.lang.Math;
 
public class MyClass {
 
   public static void main(String[] args) {
       double answer = Math.pow(1.25, 4.5);
// java.lang.Math.pow() method
 
       System.out.println("1.25 raised to the power of 4.5 = " + answer);
   }
}
Esto generaría 2.729575167846423. Si usas una calculadora, verás que da la misma respuesta. Veamos un ejemplo más antes de pasar a la siguiente sección. Elevaremos un número a una potencia negativa y compararemos los resultados. Para este ejemplo, elegiremos 4 como base y -2 como exponente.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){
        double answer = Math.pow(4, -2);
// java.lang.Math.pow() method
 
        System.out.println(answer);
     }    
}
Obtenemos la salida 0.0625.

Ejemplo rápido: cómo redondear su respuesta

Diga, necesitamos encontrar el valor de 1.25 4.5 . La respuesta es 2.729575167846423. Muy a menudo es necesario redondear el resultado. Tratemos de obtener una respuesta exacta al cuarto decimal. ¿Cómo hacerlo? ¿Qué pasa si solo requerimos los primeros 4 lugares decimales? Podemos usar el método java.lang.Math.round para eso. Sin embargo, como Math.round redondea el valor al entero más cercano, tendremos que multiplicarlo por el número de decimales y luego redondear y dividir nuevamente.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){
        double answer = Math.pow(1.25, 4.5);
        answer = Math.round(answer*100.0)/100.0;
        
        System.out.println(answer);
     }
     
}
La salida es 2.73.

Cómo usar Math.pow correctamente

Cuando usamos el método java.lang.Math.pow , hay algunas cosas a tener en cuenta.
  1. Si el parámetro del exponente es cero, la salida será 1,0. Esto se debe a que la potencia de cero para cualquier número se define como uno.
  2. Si el parámetro exponente es uno, la salida será el parámetro base. Esto se debe a que si elevas cualquier número a la potencia de 1, el resultado es el mismo que la base.
  3. Si la base es cero negativo/positivo y el parámetro del exponente es un número negativo, entonces el resultado es Infinito. (Los ceros negativos pueden ocurrir debido al redondeo de números entre cero y el número negativo distinto de cero más pequeño representable).
  4. Si el parámetro del exponente es NaN, la salida también será NaN.
Consideremos una instancia en la que puede ocurrir esta tercera situación.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){         
        double base = 5;
        double exponent = Double.NaN;
 
        double answer = Math.pow(base, exponent);
 
        System.out.println(answer);
     }     
}
Esto generará NaN. Entonces, si su código da como resultado NaN, sería conveniente verificar si el argumento del exponente es NaN. En caso de que se pregunte qué es NaN, significa 'no es un número' e indica que el valor no se ha definido. Creemos que ahora está listo para seguir adelante y poner lang.Math.pow() para usar en sus aplicaciones.

Conclusión

El método java.lang.Math.pow() es una excelente manera de encontrar fácilmente la potencia de varios números, tanto enteros como fraccionarios. A diferencia de un método que podría escribir usted mismo, está altamente optimizado y es muy adecuado para una variedad de aplicaciones en las que el tiempo es crítico. Aunque genera todos los resultados como dobles, siempre podemos convertir el valor en un número entero como hicimos en el ejemplo. Además, para nuestra comodidad, la biblioteca java.lang.Math proporciona métodos para redondear el resultado al número preferido de lugares decimales.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION