JavaRush /Blog Java /Random-MS /Bagaimana untuk Eksponen di Jawa

Bagaimana untuk Eksponen di Jawa

Diterbitkan dalam kumpulan
Hai dunia! Googling sesuatu atau meminta bantuan di forum adalah perkara biasa walaupun untuk pengaturcara yang berpengalaman. Tetapi terdapat topik dalam pembangunan yang sangat asas dan mudah sehinggakan pemula hijau pun harus mengetahuinya. Dan inilah salah satu topik tersebut. Hari ini kita akan bercakap tentang cara eksponenisasi dilakukan di Jawa. Bagaimana untuk melakukan eksponen dalam Java - 1Mari kita bayangkan sejenak bahawa anda diberi tugas: cari nombor pada tahap tertentu. Bunyi agak mudah, tetapi bagaimana untuk melaksanakan penyelesaiannya? Mari lihat kaedah yang paling biasa dan beberapa alternatif. Dan sebelum kita "menyelami" penyelesaian, mari kita ingat dahulu apa itu menaikkan nombor kepada kuasa: Bagaimana untuk melakukan eksponen dalam Java - 2Menaikkan kepada kuasa ialah tindakan di mana satu nombor didarab dengan sendirinya beberapa kali. Nombor yang didarab dipanggil asas, dan bilangan kali didarab dipanggil eksponen. Nah, hasil darab sendiri asas ini dipanggil eksponen. Sebagai contoh, untuk 8 ia adalah 2 kepada kuasa ketiga, kerana 2x2x2=8. Menaikkan nombor kepada kuasa kedua menunjukkan bahawa kita menjadikannya faktor dua kali, dan sebagai peraturan kuasa ini dipanggil kuasa empat segi. Iaitu, 4 kuasa dua = 4x4 = 16. Jadi, kami telah menyegarkan ingatan kami, dan kini kami beralih terus ke cara menggunakan pow dalam Java - kaedah untuk eksponen.
  1. Math pow

    Cara paling mudah untuk menyelesaikan masalah ini adalah dengan menggunakan kelas Matematik. Ini adalah penyelesaian yang anda akan gunakan dalam kebanyakan kes.

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

    Kelas Matematik mengandungi kaedah yang berkaitan dengan trigonometri, geometri, dan aspek matematik yang lain. Di dalamnya, kaedah dilaksanakan sebagai statik, jadi anda boleh memanggilnya dengan segera melalui nama kelas Matematik tanpa membuat objek kelas.

    Apakah rupa eksponensi:

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

    Kami terpaksa menggunakan jenis cast (int), kerana kaedah kelas Matematik ini mengembalikan nilai jenis double (argumen juga berganda, tetapi cast jenis tersirat digunakan di sana).

    Dan sekarang - bonus: pilihan tambahan.

  2. Nilai kuasa dua nombor

    Mari kita mulakan, mungkin, dengan perkara yang paling mudah.

    Beginilah cara kaedah untuk kuasa dua ditulis:

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

    Panggilan masuk utama:

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

    Itu sahaja - tiada yang rumit atau tidak perlu.

  3. Nombor kepada kuasa

    Tetapi nombor kuasa dua bukan semua yang kita perlukan. Selalunya dalam kerja kami, kami memerlukan nombor pada tahap tertentu, jadi yang berikut ialah versi yang lebih rumit, tetapi dengan nilai java pow tersuai:

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

    Algoritma ini sangat mudah: kami menetapkan hasil titik permulaan, dan kemudian darabkannya dengan nilai kami seberapa banyak kali gelung dengan powValue berjalan (bilangan powValue)

  4. Rekursi

    Kaedah seterusnya akan menjadi sedikit lebih eksotik, tetapi tidak kurang sejuk.

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

    Rekursi ialah ciri yang membenarkan kaedah memanggil dirinya sendiri. Di Jawa, mekanisme sedemikian wujud, dan kaedah sedemikian dipanggil rekursif.

    Banyak, jika tidak semua, masalah algoritma boleh diselesaikan secara rekursif. Yang ini juga tidak terkecuali, jadi mari kita lihat bagaimana anda boleh menaikkan nombor kepada kuasa tertentu dengan cara rekursif:

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

    Seperti yang kita lihat, kita mempunyai dua kes:

    1. Syarat untuk keluar dari rekursi, atau dalam erti kata lain, apabila nilai darjah kita mencapai satu, kita akan mula tercampak ke belakang.
    2. Mekanisme itu sendiri untuk mendarab nilai dengan hasil panggilan kaedah yang sama, tetapi dengan powValue - 1.

    Nah, kini tiba masanya untuk melihat kaedah yang lebih malas, iaitu kaedah "di luar kotak".

  5. Integer Besar

    Tujuan utama kelas BigInteger adalah untuk menyimpan integer dengan saiz sewenang-wenangnya, tetapi pada masa yang sama ia mempunyai pelbagai kaedah aritmetik yang membolehkan anda bekerja dengan nombor yang besar ini (atau tidak begitu besar).

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

    Anda boleh membaca lebih lanjut mengenai BigInteger dalam artikel ini .

    Jadi apakah rupa eksponensi menggunakan BigInteger di Jawa?

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

    Cukup mudah dan tanpa sebarang masalah, bukan?

Nah, itu sahaja untuk hari ini! Kini anda tahu tentang pelbagai cara untuk eksponen. Setuju, ini bukan topik yang sukar :)
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION