JavaRush /Blog Java /Random-PL /Jak potęgować w Javie

Jak potęgować w Javie

Opublikowano w grupie Random-PL
Witaj świecie! Wygooglowanie czegoś lub prośba o pomoc na forum to codzienność nawet dla doświadczonego programisty. Ale w trakcie opracowywania są tematy tak podstawowe i proste, że nawet początkujący zielony powinien je znać. A oto jeden z takich tematów. Dzisiaj porozmawiamy o tym, jak przeprowadzane jest potęgowanie w Javie. Jak wykonać potęgowanie w Javie - 1Wyobraźmy sobie przez chwilę, że otrzymałeś zadanie: znajdź liczbę w pewnym stopniu. Brzmi dość prosto, ale jak wdrożyć rozwiązanie? Przyjrzyjmy się najczęstszej metodzie i kilku alternatywom. Zanim „zanurzymy się” w rozwiązaniach, przypomnijmy sobie, czym jest podnoszenie liczby do potęgi: Jak wykonać potęgowanie w Javie - 2Podnoszenie do potęgi to czynność polegająca na kilkukrotnym pomnożeniu jednej liczby przez samą siebie. Liczba, która jest mnożona, nazywana jest podstawą, a liczba jej pomnożeń nazywana jest wykładnikiem. Cóż, wynik tego samomnożenia podstawy nazywa się potęgowaniem. Na przykład dla 8 jest to 2 do potęgi trzeciej, ponieważ 2x2x2=8. Podniesienie liczby do drugiej potęgi oznacza, że ​​zwiększamy ją dwukrotnie i z reguły tę potęgę nazywamy potęgą kwadratową. Oznacza to, że 4 do kwadratu = 4x4 = 16. Odświeżyliśmy więc naszą pamięć i teraz przechodzimy bezpośrednio do sposobów wykorzystania pow w Javie - metody potęgowania.
  1. Matematyka pow

    Najłatwiejszym sposobem rozwiązania tego problemu jest użycie klasy Math. To rozwiązanie, z którego będziesz korzystać w większości przypadków.

    Jak potęgować w Javie — 3

    Klasa Math zawiera metody związane z trygonometrią, geometrią i innymi aspektami matematyki. Metody są w nim zaimplementowane jako statyczne, dzięki czemu można je od razu wywołać poprzez nazwę klasy Math bez tworzenia obiektu klasy.

    Jak wygląda potęgowanie:

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

    Musieliśmy zastosować rzutowanie typu (int), ponieważ ta metoda klasy Math zwraca wartość typu double (argumenty również są double, ale stosowane jest tam ukryte rzutowanie typu).

    A teraz - bonus: dodatkowe opcje.

  2. Wartość kwadratu liczby

    Zacznijmy może od najprostszej rzeczy.

    Oto jak zapisana jest metoda kwadratury:

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

    Zadzwoń do głównego:

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

    To wszystko - nic skomplikowanego i niepotrzebnego.

  3. Liczba do potęgi

    Ale liczba do kwadratu to nie wszystko, czego potrzebujemy. Najczęściej w naszej pracy będziemy potrzebować liczby w pewnym stopniu, dlatego poniżej znajduje się nieco bardziej skomplikowana wersja, ale z niestandardową wartością pow 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;
    }

    Algorytm jest bardzo prosty: ustalamy wynik w punkcie początkowym, a następnie mnożymy go przez naszą wartość tyle razy, ile uruchomi się pętla z powValue (liczba powValue)

  4. Rekurencja

    Następna metoda będzie nieco bardziej egzotyczna, ale nie mniej fajna.

    Jak potęgować w Javie — 4

    Rekurencja to funkcja, która pozwala metodzie wywołać samą siebie. W Javie taki mechanizm istnieje i dlatego takie metody nazywane są rekurencyjnymi.

    Wiele, jeśli nie wszystkie, problemy algorytmiczne można rozwiązać rekurencyjnie. Ten przypadek również nie będzie wyjątkiem, więc przyjrzyjmy się, jak można podnieść liczbę do określonej potęgi w sposób rekurencyjny:

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

    Jak widzimy, mamy dwa przypadki:

    1. Warunek wyjścia z rekurencji, czyli innymi słowy, gdy wartość naszego stopnia osiągnie jeden, zaczniemy być odrzucani.
    2. Sam mechanizm mnożenia wartości przez wynik wywołania tej samej metody, ale z powValue - 1.

    Cóż, teraz czas przyjrzeć się bardziej leniwym metodom, a mianowicie metodom „gotowym”.

  5. Duża liczba całkowita

    Głównym celem klasy BigInteger jest przechowywanie liczb całkowitych o dowolnej wielkości, ale jednocześnie posiada różne metody arytmetyczne, które pozwalają pracować z tymi ogromnymi (lub mniej dużymi) liczbami.

    Jak potęgować w Javie — 5

    Więcej o BigInteger możesz przeczytać w tym artykule .

    Jak więc wyglądałoby potęgowanie przy użyciu BigInteger w Javie?

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

    Całkiem proste i bez żadnych problemów, prawda?

Cóż, to wszystko na dziś! Teraz wiesz już o różnych sposobach potęgowania. Zgadzam się, to nie był trudny temat :)
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION