JavaRush /Java Blog /Random-IT /Come esponenziare in Java

Come esponenziare in Java

Pubblicato nel gruppo Random-IT
Ciao mondo! Cercare qualcosa su Google o chiedere aiuto su un forum è una cosa comune anche per un programmatore esperto. Ma ci sono argomenti così basilari e semplici in fase di sviluppo che anche un principiante alle prime armi dovrebbe conoscerli. Ed ecco uno di quegli argomenti. Oggi parleremo di come viene eseguita l'esponenziazione in Java. Come eseguire l'esponenziazione in Java - 1Immaginiamo per un secondo che ti venga assegnato un compito: trovare un numero in una certa misura. Sembra abbastanza semplice, ma come implementare la soluzione? Diamo un'occhiata al metodo più comune e alle diverse alternative. E prima di “tuffarci” nelle soluzioni, ricordiamo innanzitutto cosa significa elevare un numero a potenza: Come eseguire l'esponenziazione in Java - 2elevare a potenza è un’azione in cui un numero viene moltiplicato per se stesso più volte. Il numero che viene moltiplicato si chiama base, mentre il numero di volte in cui viene moltiplicato si chiama esponente. Ebbene, il risultato di questa automoltiplicazione della base si chiama esponenziazione. Ad esempio, per 8 è 2 alla terza potenza, poiché 2x2x2=8. Elevare un numero alla seconda potenza indica che lo stiamo trasformando in un fattore due volte, e di regola questa potenza è chiamata potenza quadrata. Cioè, 4 al quadrato = 4x4 = 16. Quindi, abbiamo rinfrescato la nostra memoria e ora passiamo direttamente ai modi per utilizzare pow in Java, un metodo per l'elevamento a potenza.
  1. Prova di matematica

    Il modo più semplice per risolvere questo problema è utilizzare la classe Math. Questa è la soluzione che utilizzerai nella maggior parte dei casi.

    Come esponenziare in Java - 3

    La classe Math contiene metodi relativi alla trigonometria, alla geometria e ad altri aspetti della matematica. In esso, i metodi sono implementati come statici, quindi puoi chiamarli immediatamente tramite il nome della classe Math senza creare un oggetto di classe.

    Che aspetto ha l'elevamento a potenza:

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

    Abbiamo dovuto utilizzare un cast di tipo (int), poiché questo metodo della classe Math restituisce un valore di tipo double (anche gli argomenti sono double, ma lì viene utilizzato un cast di tipo implicito).

    E ora - un bonus: opzioni aggiuntive.

  2. Il valore del quadrato di un numero

    Cominciamo, forse, con la cosa più semplice.

    Ecco come viene scritto il metodo per la quadratura:

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

    Chiama in principale:

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

    Questo è tutto: niente di complicato o inutile.

  3. Numero elevato alla potenza

    Ma il numero quadrato non è tutto ciò di cui abbiamo bisogno. Molto spesso nel nostro lavoro avremo bisogno di un numero in una certa misura, quindi quella che segue è una versione leggermente più complicata, ma con un valore Java Pow personalizzato:

    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;
    }

    L'algoritmo è molto semplice: impostiamo il risultato del punto iniziale e poi lo moltiplichiamo per il nostro valore tante volte quante viene eseguito il ciclo con powValue (numero di volte powValue)

  4. Ricorsione

    Il prossimo metodo sarà un po’ più esotico, ma non per questo meno interessante.

    Come esponenziare in Java - 4

    La ricorsione è una funzionalità che consente a un metodo di chiamare se stesso. In Java è presente un tale meccanismo e tali metodi sono di conseguenza chiamati ricorsivi.

    Molti, se non tutti, i problemi algoritmici possono essere risolti ricorsivamente. Anche questo non farà eccezione, quindi diamo un'occhiata a come puoi elevare un numero a una certa potenza in modo ricorsivo:

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

    Come possiamo vedere abbiamo due casi:

    1. La condizione per uscire dalla ricorsione, o in altre parole, quando il nostro valore di laurea raggiunge uno, inizieremo a essere respinti.
    2. Il meccanismo stesso per moltiplicare il valore per il risultato della chiamata allo stesso metodo, ma con powValue - 1.

    Bene, ora è il momento di considerare i metodi più pigri, vale a dire i metodi “fuori dagli schemi”.

  5. BigInteger

    Lo scopo principale della classe BigInteger è memorizzare numeri interi di dimensione arbitraria, ma allo stesso tempo ha vari metodi aritmetici che ti consentono di lavorare con questi numeri enormi (o non così grandi).

    Come esponenziare in Java - 5

    Puoi leggere ulteriori informazioni su BigInteger in questo articolo .

    Quindi come sarebbe l'elevamento a potenza utilizzando BigInteger in Java?

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

    Abbastanza semplice e senza problemi, non è vero?

Bene, per oggi è tutto! Ora conosci una varietà di modi per esponenziare. D'accordo, questo non era un argomento difficile :)
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION