JavaRush /Java Blogu /Random-AZ /Java-da necə eksponentasiya etmək olar

Java-da necə eksponentasiya etmək olar

Qrupda dərc edilmişdir
Salam dünya! Nəyisə axtarmaq və ya forumda kömək istəmək hətta təcrübəli proqramçı üçün də adi haldır. Ancaq inkişafda o qədər sadə və sadə mövzular var ki, hətta yaşıl bir başlanğıc da bunları bilməlidir. Və bu mövzulardan biri budur. Bu gün biz Java-da eksponentasiyanın necə həyata keçirildiyi haqqında danışacağıq. Java-da eksponentasiyanı necə etmək olar - 1Bir anlığa təsəvvür edək ki, sizə tapşırıq verilib: müəyyən dərəcədə ədəd tapın. Olduqca sadə səslənir, amma həlli necə həyata keçirmək olar? Ən ümumi üsula və bir neçə alternativə baxaq. Həlllərə “dalış” etməzdən əvvəl gəlin əvvəlcə rəqəmi gücə çatdırmağın nə olduğunu xatırlayaq: Java-da eksponentasiyanı necə etmək olar - 2Güc səviyyəsinə yüksəltmək bir ədədin özünə bir neçə dəfə vurulduğu bir hərəkətdir. Çarpılan ədədə baza, neçə dəfə vurulduğuna isə eksponent deyilir. Yaxşı, bazanın bu özünü vurmasının nəticəsi eksponentasiya adlanır. Məsələn, 8 üçün üçüncü dərəcəyə 2-dir, çünki 2x2x2=8. Ədədin ikinci dərəcəyə qaldırılması onu göstərir ki, biz onu iki dəfə əmsal edirik və bir qayda olaraq bu qüvvə kvadrat güc adlanır. Yəni 4 kvadrat = 4x4 = 16. Beləliklə, biz yaddaşımızı təzələdik və indi birbaşa Java-da pow-dan istifadə yollarına - eksponentasiya metoduna keçirik.
  1. Riyaziyyat gücü

    Bu problemi həll etməyin ən asan yolu Riyaziyyat dərsindən istifadə etməkdir. Bu, əksər hallarda istifadə edəcəyiniz həlldir.

    Java-da necə eksponentasiya etmək olar - 3

    Riyaziyyat sinfi triqonometriya, həndəsə və riyaziyyatın digər aspektləri ilə bağlı metodları ehtiva edir. Orada metodlar statik olaraq həyata keçirilir, ona görə də siz onları sinif obyekti yaratmadan dərhal Math sinfinin adı ilə çağıra bilərsiniz.

    Eksponentasiya nə kimi görünür:

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

    Math sinfinin bu metodu double tipli dəyəri qaytardığı üçün biz cast (int) tipindən istifadə etməli olduq (arqumentlər də ikiqatdır, lakin orada gizli tipli cast istifadə olunur).

    İndi - bonus: əlavə seçimlər.

  2. Ədədin kvadratının qiyməti

    Bəlkə də ən sadə şeydən başlayaq.

    Kvadratlaşdırma üsulu belə yazılır:

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

    Əsas zəng:

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

    Hamısı budur - mürəkkəb və ya lazımsız bir şey yoxdur.

  3. Gücün nömrəsi

    Ancaq kvadrat rəqəm bizə lazım olan tək şey deyil. Çox vaxt işimizdə müəyyən dərəcədə bir nömrəyə ehtiyacımız olacaq, buna görə də aşağıdakılar bir az daha mürəkkəb versiyadır, lakin xüsusi java pow dəyəri ilə:

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

    Alqoritm çox sadədir: başlanğıc nöqtəsinin nəticəsini təyin edirik və sonra onu powValue ilə döngə işlədiyi qədər dəyərimizə vururuq (powValue sayı)

  4. Rekursiya

    Növbəti üsul bir az daha ekzotik olacaq, lakin daha az sərin deyil.

    Java-da necə eksponentasiya etmək olar - 4

    Rekursiya metodun özünü çağırmasına imkan verən xüsusiyyətdir. Java-da belə bir mexanizm mövcuddur və belə üsullar müvafiq olaraq rekursiv adlanır.

    Hamısı olmasa da bir çox alqoritmik məsələləri rekursiv həll etmək olar. Bu da istisna olmayacaq, ona görə də gəlin nömrəni rekursiv şəkildə müəyyən gücə necə yüksəldə bildiyinizə nəzər salaq:

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

    Gördüyümüz kimi, iki halımız var:

    1. Rekursiyadan çıxmaq şərti və ya başqa sözlə, dərəcə dəyərimiz 1-ə çatdıqda, biz geri atılmağa başlayacağıq.
    2. Eyni metodun çağırılması nəticəsində dəyərin vurulması mexanizminin özü, lakin powValue ilə - 1.

    Yaxşı, indi daha tənbəl üsullara, yəni "qutudan kənar" üsullara baxmaq vaxtıdır.

  5. BigInteger

    BigInteger sinfinin əsas məqsədi ixtiyari ölçülü tam ədədləri saxlamaqdır, lakin eyni zamanda bu nəhəng (və ya o qədər də böyük olmayan) ədədlərlə işləməyə imkan verən müxtəlif arifmetik üsullara malikdir.

    Java-da necə eksponentasiya etmək olar - 5

    Bu məqalədə BigInteger haqqında daha çox oxuya bilərsiniz .

    Beləliklə, Java-da BigInteger istifadə edərək eksponentasiya necə görünəcək?

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

    Olduqca sadə və heç bir problem olmadan, elə deyilmi?

Yaxşı, bu gün üçün hamısı budur! İndi eksponentləşdirmənin müxtəlif yollarını bilirsiniz. Razılaşın, bu çətin mövzu deyildi :)
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION