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.
- statik ikiqat abs (ikiqat a)
- statik float abs (float a)
- statik int abs(int a)
- statik uzun abs (uzun a)
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)
- statik ikiqat dərəcə (ikiqat angrad)
- statik ikiqat radyan (ikiqat angdeg)
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)
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)
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.
GO TO FULL VERSION