JavaRush /Blog Java /Random-ES /Cómo exponenciar en Java

Cómo exponenciar en Java

Publicado en el grupo Random-ES
¡Hola Mundo! Buscar algo en Google o pedir ayuda en un foro es algo común incluso para un programador experimentado. Pero hay temas en desarrollo que son tan básicos y simples que incluso un principiante debería conocerlos. Y aquí está uno de esos temas. Hoy hablaremos sobre cómo se realiza la exponenciación en Java. Cómo hacer exponenciación en Java - 1Imaginemos por un segundo que te asignan una tarea: encontrar un número hasta cierto punto. Suena bastante simple, pero ¿cómo implementar la solución? Veamos el método más común y varias alternativas. Y antes de "sumergirnos" en las soluciones, primero recordemos qué es elevar un número a una potencia: Cómo hacer exponenciación en Java - 2elevar a una potencia es una acción en la que un número se multiplica por sí mismo varias veces. El número que se multiplica se llama base y el número de veces que se multiplica se llama exponente. Pues bien, el resultado de esta automultiplicación de la base se llama exponenciación. Por ejemplo, para 8 es 2 elevado a la tercera, ya que 2x2x2=8. Elevar un número a la segunda potencia indica que lo estamos factorizando dos veces y, por regla general, esta potencia se llama potencia al cuadrado. Es decir, 4 al cuadrado = 4x4 = 16. Entonces, hemos actualizado nuestra memoria y ahora pasamos directamente a cómo usar pow en Java, un método de exponenciación.
  1. poder de matematicas

    La forma más sencilla de resolver este problema es utilizar la clase de Matemáticas. Esta es la solución que utilizará en la mayoría de los casos.

    Cómo exponenciar en Java - 3

    La clase Matemáticas contiene métodos relacionados con trigonometría, geometría y otros aspectos de las matemáticas. En él, los métodos se implementan como estáticos, por lo que puede llamarlos inmediatamente mediante el nombre de la clase Math sin crear un objeto de clase.

    ¿Cómo se ve la exponenciación?

    public static int pow(int value, int powValue) {
       return (int) Math.pow(value, powValue);
    }

    Tuvimos que usar una conversión de tipo (int), ya que este método de la clase Math devuelve un valor de tipo double (los argumentos también son dobles, pero allí se usa una conversión de tipo implícita).

    Y ahora, una ventaja: opciones adicionales.

  2. El valor del cuadrado de un número.

    Empecemos, quizás, por lo más sencillo.

    Así se escribe el método para elevar al cuadrado:

    public static int pow(int value){
       return value*value;
    }

    Llamar en principal:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7));
    }

    Eso es todo, nada complicado ni innecesario.

  3. Número al poder

    Pero el número al cuadrado no es todo lo que necesitamos. La mayoría de las veces en nuestro trabajo necesitaremos un número hasta cierto punto, por lo que lo que sigue es una versión un poco más complicada, pero con un valor de pow personalizado de Java:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7, 4));
    }
    
    public static int pow(int value, int powValue) {
       int result = 1;
       for (int i = 1; i <= powValue; i++) {
           result = result * value;
       }
       return result;
    }

    El algoritmo es muy simple: establecemos el resultado del punto de partida y luego lo multiplicamos por nuestro valor tantas veces como se ejecuta el ciclo con powValue (powValue número de veces)

  4. recursividad

    El siguiente método será un poco más exótico, pero no menos genial.

    Cómo exponenciar en Java - 4

    La recursividad es una característica que permite que un método se llame a sí mismo. En Java, dicho mecanismo está presente y, en consecuencia, dichos métodos se denominan recursivos.

    Muchos, si no todos, los problemas algorítmicos se pueden resolver de forma recursiva. Éste tampoco será una excepción, así que echemos un vistazo a cómo puedes elevar un número a una determinada potencia de forma recursiva:

    public static int pow(int value, int powValue) {
       if (powValue == 1) {
           return value;
       } else {
           return value * pow(value, powValue - 1);
       }
    }

    Como podemos ver, tenemos dos casos:

    1. La condición para salir de la recursividad, o en otras palabras, cuando nuestro valor de grado alcance uno, comenzaremos a retroceder.
    2. El mecanismo en sí para multiplicar el valor por el resultado de llamar al mismo método, pero con powValue - 1.

    Bueno, ahora es el momento de analizar métodos más vagos, es decir, los métodos “listos para usar”.

  5. Gran entero

    El objetivo principal de la clase BigInteger es almacenar números enteros de tamaño arbitrario, pero al mismo tiempo tiene varios métodos aritméticos que le permiten trabajar con estos números enormes (o no tan grandes).

    Cómo exponenciar en Java - 5

    Puedes leer más sobre BigInteger en este artículo .

    Entonces, ¿cómo sería la exponenciación usando BigInteger en Java?

    public static int pow(int value, int powValue) {
       BigInteger a = new BigInteger(String.valueOf(value));
      return a.pow(powValue).intValue();
    }

    Bastante sencillo y sin ningún problema ¿no?

Bueno, ¡eso es todo por hoy! Ahora conoces varias formas de exponenciar. De acuerdo, este no fue un tema difícil :)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION