JavaRush /Java Blog /Random-ID /Kelas Java Math dan metodenya

Kelas Java Math dan metodenya

Dipublikasikan di grup Random-ID
Pada artikel ini, kami akan memberikan gambaran singkat tentang kelas Matematika di Java. Mari kita bicara tentang metode kelas ini dan cara menggunakannya. Kelas Math berada dalam paket java.lang dan menyediakan serangkaian metode statis untuk melakukan sejumlah perhitungan matematis yang berbeda. Berikut ini adalah contoh penghitungan yang mungkin berguna bagi kelas Matematika:
  • Perhitungan nilai absolut (nilai modulo)
  • Perhitungan nilai fungsi trigonometri (sinus, cosinus, dll)
  • Ketinggian ke berbagai derajat
  • Mengekstraksi akar dengan berbagai tingkatan
  • Pembuatan angka acak
  • Pembulatan
  • Dll.
Di bawah ini kita akan mencoba melihat bagaimana kelas Java Math membantu memecahkan masalah yang tercantum di atas. Kelas Java Math dan metodenya - 1Mari kita mulai menganalisis kelas dengan metode yang memungkinkan Anda menghitung nilai modulo. Metode abs bertanggung jawab untuk ini. Metode ini kelebihan beban dan kelas Math memiliki perbedaan sebagai berikut:
  • abs ganda statis (ganda a)
  • abs pelampung statis (mengambang a)
  • statis int abs(int a)
  • perut panjang statis (panjang a)
Contoh penggunaan:
public static void main(String[] args) {
        System.out.println(Math.abs(-1));      // 1
        System.out.println(Math.abs(-21.8d));  // 21.8
        System.out.println(Math.abs(4532L));   // 4532
        System.out.println(Math.abs(5.341f));  // 5.341
    }

Menghitung nilai fungsi trigonometri

Kelas Matematika memungkinkan Anda menghitung berbagai fungsi trigonometri - sinus, kosinus, garis singgung, dll. Daftar lengkap metode dapat ditemukan di situs dokumentasi resmi . Di bawah ini adalah daftar metode tersebut:
  • dosa ganda statis (ganda a)
  • cos ganda statis (ganda a)
  • tan ganda statis (ganda a)
  • asin ganda statis (ganda a)
  • acos ganda statis (ganda a)
  • atan ganda statis (ganda a)
Metode menghitung: sinus, cosinus, tangen, arcsinus, arccosine, arctangent. Setiap metode menghitung nilai sudut `a`. Parameter ini diteruskan ke setiap metode dan dalam setiap kasus diukur dalam radian (dan bukan dalam derajat, seperti yang biasa kita lakukan). Ada dua berita di sini, baik dan buruk. Mari kita mulai dengan yang bagus. Kelas Matematika memiliki metode untuk mengubah radian menjadi derajat dan derajat menjadi radian:
  • derajat ganda statis (angrad ganda)
  • toRadian ganda statis (angdeg ganda)
Di sini metode toDegrees akan mengubah sudut angrad, yang diukur dalam radian, menjadi derajat. Sebaliknya, metode toRadians mengubah sudut angdeg yang diukur dalam derajat menjadi radian. Kabar buruknya adalah hal ini terjadi karena beberapa kesalahan. Berikut contoh perhitungan sinus dan cosinus:
public static void main(String[] args) {
        System.out.println(Math.sin(Math.toRadians(0)));
        System.out.println(Math.sin(Math.toRadians(30)));
        System.out.println(Math.sin(Math.toRadians(90)));

        System.out.println(Math.cos(Math.toRadians(0)));
        System.out.println(Math.cos(Math.toRadians(30)));
        System.out.println(Math.cos(Math.toRadians(90)));
    }
Program ini akan menampilkan:

0.0
0.49999999999999994
1.0

1.0
0.8660254037844387
6.123233995736766E-17
Yang tidak sesuai dengan tabel sinus dan cosinus, sebagian disebabkan oleh kesalahan dalam konversi derajat ke radian.

Eksponensial

Untuk menaikkan suatu bilangan menjadi pangkat, kelas Math menyediakan metode pow, yang memiliki tanda tangan berikut:
static double pow(double a, double b)
Metode ini menaikkan parameter `a` ke pangkat `b`. Contoh:
public static void main(String[] args) {
        System.out.println(Math.pow(1,2)); // 1.0
        System.out.println(Math.pow(2,2)); // 4.0
        System.out.println(Math.pow(3,2)); // 9.0
        System.out.println(Math.pow(4,2)); // 16.0
        System.out.println(Math.pow(5,2)); // 25.0

        System.out.println(Math.pow(1,3)); // 1.0
        System.out.println(Math.pow(2,3)); // 8.0
        System.out.println(Math.pow(3,3)); // 27.0
        System.out.println(Math.pow(4,3)); // 64.0
        System.out.println(Math.pow(5,3)); // 125.0
    }

Ekstraksi akar

Kelas Matematika menyediakan metode untuk mengambil akar kuadrat dan pangkat tiga. Metode berikut bertanggung jawab atas prosedur ini:
  • sqrt ganda statis (ganda a)
  • cbrt ganda statis (ganda a)
Metode sqrt mengambil akar kuadrat, dan metode cbrt mengambil akar pangkat tiga. Contoh:
public static void main(String[] args) {
        System.out.println(Math.sqrt(4));   // 2.0
        System.out.println(Math.sqrt(9));   // 3.0
        System.out.println(Math.sqrt(16));  // 4.0

        System.out.println(Math.cbrt(8));   // 2.0
        System.out.println(Math.cbrt(27));  // 3.0
        System.out.println(Math.cbrt(125)); // 5.0
    }

Pembuatan angka acak

Untuk menghasilkan angka acak, kelas Math menyediakan metode acak. Metode ini menghasilkan bilangan real positif (ganda) acak yang berkisar antara 0,0 hingga 1,0. Tanda tangan metode terlihat seperti ini:
public static double random()
Mari kita lihat contohnya:
public static void main(String[] args) {
    for (int i = 0; i < 5; i++) {
        System.out.println(Math.random());
    }
}
Setelah menjalankan metode utama, yang berikut ini ditampilkan di konsol:

0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
Dengan sedikit manipulasi, Anda dapat menggunakan metode acak kelas Matematika untuk mendapatkan bilangan bulat acak yang berada dalam kisaran tertentu. Berikut adalah contoh fungsi yang mengambil dua argumen min dan max dan mengembalikan bilangan bulat acak yang berada dalam rentang dari min (inklusif) hingga max (inklusif):
static int randomInARange(int min, int max) {
    return  (int) (Math.random() * ((max - min) + 1)) + min;
}
Mari kita tulis metode Utama di mana kita akan menguji metode randomInARange:
public class MathExample {


    public static void main(String[] args) {
        // Карта, в которой мы будем хранить количество выпадений Howого-то числа
        Map<Integer, Integer> map = new TreeMap<>();

        // За 10000 операций
        for (int i = 0; i < 10000; i++) {

            // Сгенерируем рандомное число от -10 включительно до 10 включительно
            final Integer randomNumber = randomInARange(-10, 10);


            if (!map.containsKey(randomNumber)) {
                // Если карта еще не содержит "выпавшего случайного числа"
                // Положим его в карту с кол-вом выпадений = 1
                map.put(randomNumber, 1);
            } else {
                // Иначе, увеличим количество выпадений данного числа на 1
                map.put(randomNumber, map.get(randomNumber) + 1);
            }
        }

        // Выведем на экран содержимое карты в формате ключ=[meaning]
        for (Map.Entry<Integer, Integer> entry : map.entrySet()){
            System.out.println(String.format("%d=[%d]", entry.getKey(), entry.getValue()));
        }
    }

    static int randomInARange(int min, int max) {
        return  (int) (Math.random() * ((max - min) + 1)) + min;
    }
}
Setelah menjalankan metode utama, hasilnya mungkin terlihat seperti ini:

-10=[482]
-9=[495]
-8=[472]
-7=[514]
-6=[457]
-5=[465]
-4=[486]
-3=[500]
-2=[490]
-1=[466]
0=[458]
1=[488]
2=[461]
3=[470]
4=[464]
5=[463]
6=[484]
7=[479]
8=[459]
9=[503]
10=[444]

Process finished with exit code 0

Pembulatan

Untuk pembulatan angka di Java, salah satu alatnya adalah metode kelas Matematika. Lebih tepatnya, metode bulat, langit-langit dan lantai:
  • putaran panjang statis (ganda a)
  • putaran int statis (float a)
  • lantai ganda statis (ganda a)
  • langit-langit ganda statis (ganda a)
Metode putaran – putaran seperti biasa kepada rata-rata orang. Jika bagian pecahan suatu bilangan lebih besar atau sama dengan 0,5, maka bilangan tersebut akan dibulatkan ke atas, sebaliknya dibulatkan ke bawah. Metode dasar selalu, terlepas dari nilai bagian pecahannya, membulatkan angka ke bawah (ke arah negatif tak terhingga). Sebaliknya, metode ceil, terlepas dari nilai bagian pecahannya, membulatkan angka ke atas (ke arah positif tak terhingga). Mari kita lihat contohnya:
public static void main(String[] args) {
    System.out.println(Math.round(1.3)); // 1
    System.out.println(Math.round(1.4)); // 1
    System.out.println(Math.round(1.5)); // 2
    System.out.println(Math.round(1.6)); // 2

    System.out.println(Math.floor(1.3)); // 1.0
    System.out.println(Math.floor(1.4)); // 1.0
    System.out.println(Math.floor(1.5)); // 1.0
    System.out.println(Math.floor(1.6)); // 1.0

    System.out.println(Math.ceil(1.3)); // 2.0
    System.out.println(Math.ceil(1.4)); // 2.0
    System.out.println(Math.ceil(1.5)); // 2.0
    System.out.println(Math.ceil(1.6)); // 2.0
}

Kesimpulan

Pada artikel ini, kita melihat sekilas kelas Matematika. Kami melihat bagaimana menggunakan kelas ini Anda dapat:
  • Hitung nilai modulo;
  • Hitung nilai fungsi trigonometri;
  • Menaikkan angka menjadi kekuatan;
  • Ekstrak akar kuadrat dan kubus;
  • Hasilkan nomor acak;
  • Angka bulat.
Masih banyak metode menarik lainnya di kelas ini. Yang dapat ditemukan di situs dokumentasi resmi . Nah, untuk kenalan pertama, cara-cara di atas sudah cukup.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION