JavaRush /Java Blogu /Random-AZ /Java Riyaziyyat sinfi və onun metodları

Java Riyaziyyat sinfi və onun metodları

Qrupda dərc edilmişdir
Bu yazıda biz Java-da Riyaziyyat dərsi haqqında qısa məlumat verəcəyik. Gəlin bu sinfin metodlarından və onlardan necə istifadə olunacağından danışaq. Riyaziyyat sinfi java.lang paketində yerləşir və bir sıra müxtəlif riyazi hesablamaları yerinə yetirmək üçün statik metodlar toplusunu təmin edir. Aşağıdakılar Riyaziyyat sinfinin faydalı ola biləcəyi hesablamalara nümunələrdir:
  • Mütləq dəyərlərin hesablanması (modul dəyərləri)
  • Triqonometrik funksiyaların qiymətlərinin hesablanması (sinuslar, kosinuslar və s.)
  • Müxtəlif dərəcələrdə yüksəlmə
  • Müxtəlif dərəcəli köklərin çıxarılması
  • Təsadüfi nömrələr yaratmaq
  • Yuvarlaqlaşdırma
  • və s.
Aşağıda Java Math sinfinin yuxarıda sadalanan problemlərin həllinə necə kömək etdiyinə baxmağa çalışacağıq. Java Riyaziyyat sinfi və onun metodları - 1Dəyər modulunu hesablamağa imkan verən üsullarla sinfi təhlil etməyə başlayaq. Bunun üçün abs metodu məsuliyyət daşıyır. Bu metod həddən artıq yüklənib və Riyaziyyat sinfi aşağıdakı fərqlərə malikdir:
  • statik ikiqat abs (ikiqat a)
  • statik float abs (float a)
  • statik int abs(int a)
  • statik uzun abs (uzun a)
İstifadə nümunəsi:

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
    }

Triqonometrik funksiyaların qiymətlərinin hesablanması

Riyaziyyat sinfi müxtəlif triqonometrik funksiyaları - sinuslar, kosinuslar, tangenslər və s. hesablamağa imkan verir. Metodların tam siyahısını rəsmi sənədlər saytında tapa bilərsiniz . Aşağıda bu üsulların siyahısı verilmişdir:
  • statik ikiqat günah (ikiqat a)
  • statik ikiqat cos (ikiqat a)
  • statik ikiqat tan (ikiqat a)
  • statik ikiqat asin (ikiqat a)
  • statik ikiqat acos (ikiqat a)
  • statik ikiqat atan (ikiqat a)
Hesablama üsulları: sinus, kosinus, tangens, arksinus, arkkosin, arktangent. Hər bir üsul "a" bucağı üçün bir dəyər hesablayır. Bu parametr hər bir metoda ötürülür və hər bir halda radyanla ölçülür (və bizim öyrəşdiyimiz kimi dərəcələrlə deyil). Burada iki xəbər var, yaxşı və pis. Yaxşı olandan başlayaq. Riyaziyyat sinfində radyanları dərəcələrə və dərəcələri radana çevirmək üsulları var:
  • statik ikiqat dərəcə (ikiqat angrad)
  • statik ikiqat radyan (ikiqat angdeg)
Burada toDegrees metodu radyanla ölçülən anqrad bucağını dərəcəyə çevirəcək. toRadians metodu, əksinə, dərəcə ilə ölçülən angdeg bucağını radianlara çevirir. Pis xəbər odur ki, bu, bəzi səhvlərlə baş verir. Budur sinusların və kosinusların hesablanması nümunəsi:

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)));  
    }
Proqram çıxış edəcək:

0.0
0.49999999999999994
1.0

1.0
0.8660254037844387
6.123233995736766E-17
Bu, sinus və kosinus cədvəllərinə tam uyğun gəlmir, qismən dərəcələrdən radianlara çevrilmədə səhvlər səbəbindən.

Ekponentasiya

Rəqəmi gücə yüksəltmək üçün Math sinfi aşağıdakı imzaya malik pow metodunu təqdim edir:

static double pow(double a, double b)
Bu üsul `a` parametrini `b` gücünə qaldırır. Nümunələr:

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
    }

Kök çıxarılması

Riyaziyyat sinfi kvadrat və kub köklərinin götürülməsi üsullarını təqdim edir. Aşağıdakı üsullar bu prosedur üçün məsuliyyət daşıyır:
  • statik ikiqat sqrt (ikiqat a)
  • statik ikiqat cbrt (ikiqat a)
sqrt metodu kvadrat kökü, cbrt metodu isə kub kökünü götürür. Nümunələr:

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
    }

Təsadüfi nömrələr yaratmaq

Təsadüfi ədədlər yaratmaq üçün Riyaziyyat sinfi təsadüfi metodu təmin edir. Bu üsul 0,0 ilə 1,0 diapazonunda təsadüfi müsbət real (ikiqat) ədəd yaradır. Metod imzası belə görünür:

public static double random()
Nümunələrə baxaq:

    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println(Math.random());
        }
    }
Əsas metodu yerinə yetirdikdən sonra konsolda aşağıdakılar göstərildi:

0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
Bir az manipulyasiya edərək, müəyyən diapazonda yerləşən tam təsadüfi ədədləri əldə etmək üçün Math sinifinin təsadüfi metodundan istifadə edə bilərsiniz. Burada min və max iki arqument götürən və min (daxil olmaqla) ilə maksimum (daxil olmaqla) aralığında olan təsadüfi tam ədədi qaytaran funksiya nümunəsidir:

    static int randomInARange(int min, int max) {
        return  (int) (Math.random() * ((max - min) + 1)) + min;
    }
RandomInARange metodunu sınaqdan keçirəcəyimiz Main metodunu yazaq:

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;
    }
}
Əsas metodu işə saldıqdan sonra çıxış belə görünə bilər:

-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

Yuvarlaqlaşdırma

Java-da ədədlərin yuvarlaqlaşdırılması üçün vasitələrdən biri Riyaziyyat sinfinin metodlarıdır. Daha doğrusu, dəyirmi, tavan və döşəmə üsulları:
  • statik uzun dairə (ikiqat a)
  • statik int round(float a)
  • statik ikiqat mərtəbə (ikiqat a)
  • statik ikiqat tavan (ikiqat a)
Dəyirmi üsul - hər zamanki kimi adi insana yuvarlanır. Ədədin kəsr hissəsi 0,5-dən böyük və ya bərabərdirsə, o zaman rəqəm yuxarı yuvarlaqlaşdırılacaq, əks halda aşağı yuvarlaqlaşdırılacaq. Döşəmə üsulu, kəsr hissəsinin dəyərlərindən asılı olmayaraq, həmişə rəqəmi aşağı yuvarlaqlaşdırır (mənfi sonsuzluğa doğru). Tavan üsulu, əksinə, kəsr hissəsinin dəyərlərindən asılı olmayaraq, ədədləri yuvarlaqlaşdırır (müsbət sonsuzluğa doğru). Nümunələrə baxaq:

    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   
    }

Nəticə

Bu yazıda Riyaziyyat dərsinə səthi nəzər saldıq. Bu sinifdən necə istifadə edə biləcəyinizi nəzərdən keçirdik:
  • Dəyərləri modul hesablayın;
  • Triqonometrik funksiyaların qiymətlərini hesablayın;
  • Nömrələri güclərə qaldırın;
  • Kvadrat və kub kökləri çıxarın;
  • Təsadüfi ədədlər yaratmaq;
  • Dəyirmi nömrələr.
Bu sinifdə bir çox başqa maraqlı üsullar var. Hansı ki , rəsmi sənədlər saytında tapa bilərsiniz . Yaxşı, ilk tanışlıq üçün yuxarıda sadalanan üsullar kifayət qədər kifayətdir.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION