JavaRush /Java Blog /Random-TK /Java-da nädip eksponentleşdirmeli

Java-da nädip eksponentleşdirmeli

Toparda çap edildi
Salam dünýä! Bir zada göz aýlamak ýa-da forumda kömek soramak hatda tejribeli programmist üçinem adaty zat. Developmentöne ösüşde şeýle esasy we ýönekeý temalar bar welin, hatda ýaşyl öwreniji hem bilmeli. Ine, şol mowzuklaryň biri. Bu gün Java-da eksponentasiýanyň nähili ýerine ýetirilişi barada gürleşeris. Java-da eksponentasiýa nädip etmeli - 1Bir sekunt göz öňüne getireliň, size bir wezipe berildi: belli bir derejede san tapyň. Simpleönekeý ýaly görünýär, ýöne çözgüdi nädip durmuşa geçirmeli? Iň ýaýran usula we birnäçe alternatiwa seredeliň. Çözgütlere “çümmezden” ozal, bir güýji köpeltmegiň nämedigini ýadymyzdan çykaralyň: Java-da eksponentasiýa nädip etmeli - 2Bir güýje götermek, bir sanyň birnäçe gezek köpelýän hereketidir. Köpeldilen sana esas diýilýär we näçe gezek köpelse, eksponent diýilýär. Dogrusy, bazanyň bu öz-özüni köpeltmeginiň netijesine eksponentasiýa diýilýär. Mysal üçin, 8 üçin 2x2x2 = 8 bolany üçin 2-den üçünji güýje çenli. Ikinji güýje san köpeltmek, ony iki gezek faktor edýändigimizi görkezýär we adatça bu güýje kwadrat güýji diýilýär. 4agny, 4 kwadrat = 4x4 = 16. Şeýlelik bilen, ýadymyzy täzeledik, indi bolsa Java-da pow ulanmagyň usullaryna gönüden-göni geçýäris - eksponentasiýa usuly.
  1. Matematika pow

    Bu meseläni çözmegiň iň aňsat usuly, Matematika synpyny ulanmakdyr. Bu, köp halatda ulanjak çözgütiňizdir.

    Как выполнить возведение в степень в Java - 3

    Matematika synpynda trigonometriýa, geometriýa we matematikanyň beýleki taraplary bilen baglanyşykly usullar bar. Onda usullar statik görnüşde amala aşyrylýar, şonuň üçin synp obýektini döretmezden derrew Matematika synpynyň ady bilen jaň edip bilersiňiz.

    Eksponentasiýa nämä meňzeýär:

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

    Kast (int) görnüşini ulanmaly bolduk, sebäbi Matematika synpynyň bu usuly goşa görnüşli bahany yzyna gaýtaryp berýär (argumentler hem iki esse, ýöne ol ýerde aç-açan görnüşli guýma ulanylýar).

    Indi bolsa bonus: goşmaça wariantlar.

  2. San kwadratynyň bahasy

    Iň ýönekeý zat bilen başlalyň.

    Kwadrat etmegiň usuly şeýle ýazylýar:

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

    Esasy jaň:

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

    Bularyň hemmesi - çylşyrymly ýa-da zerur däl zat ýok.

  3. Kuwwata san

    Emma kwadrat san bize gerek zat däl. Işimizde köplenç belli bir derejede san gerek bolar, şonuň üçin birneme çylşyrymly wersiýa, ýöne adaty java pow bahasy bilen:

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

    Algoritm gaty ýönekeý: başlangyç nokadyň netijesini kesgitleýäris, soň bolsa ony powValue bilen aýlawdan birnäçe esse köpeldýäris (powValue sany)

  4. Gaýtalanma

    Indiki usul birneme has ekzotik bolar, ýöne salkyn bolmaz.

    Как выполнить возведение в степень в Java - 4

    Gaýtalanma, özüni çagyrmagyň usulyna mümkinçilik berýän aýratynlykdyr. Java-da şeýle mehanizm bar we şoňa görä-de şular ýaly usullara gaýtalanýan diýilýär.

    Algoritmiki meseleleriň köpüsi gaýtalanyp çözülip bilner. Bu hem kadadan çykma bolmaz, geliň, belli bir güýje gaýtalanýan görnüşde nädip köpeldip boljakdygyna göz aýlalyň:

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

    Görşümiz ýaly, biziň iki ýagdaýymyz bar:

    1. Gaýtalanmakdan çykmagyň şerti, ýa-da başga bir söz bilen aýdanymyzda, derejämiz bir derejä ýetensoň, yza gaýdyp başlarys.
    2. Şol bir usuly çagyrmagyň netijesinde bahany köpeltmegiň mehanizminiň özi, ýöne powValue - 1 bilen.

    Indi, has ýalta usullara, ýagny “gutudan daş” usullaryna seretmegiň wagty geldi.

  5. BigInteger

    “BigInteger” synpynyň esasy maksady özbaşdak ululykdaky bitewi sanlary saklamak, ýöne şol bir wagtyň özünde bu ägirt (ýa-da beýle uly däl) sanlar bilen işlemäge mümkinçilik berýän dürli arifmetiki usullar bar.

    Как выполнить возведение в степень в Java - 5

    BigInteger hakda has giňişleýin maglumaty şu makalada okap bilersiňiz .

    “Java” -da “BigInteger” -i ulanmak nämä meňzeýär?

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

    Örän ýönekeý we hiç hili kynçylyksyz, şeýlemi?

Dogrusy, bularyň hemmesi şu gün üçin! Indi aç-açan etmegiň dürli ýollary hakda bilýärsiňiz. Razy, bu kyn tema däldi :)
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION