Ushbu maqolada biz Java tilidagi matematika sinfi haqida qisqacha ma'lumot beramiz. Keling, ushbu sinfning usullari va ulardan qanday foydalanish haqida gapiraylik. Math sinfi java.lang paketida joylashgan bo'lib, turli xil matematik hisoblarni bajarish uchun statik usullar to'plamini taqdim etadi. Quyida matematika sinfi foydali bo'lishi mumkin bo'lgan hisob-kitoblarga misollar keltirilgan:
- Mutlaq qiymatlarni hisoblash (modul qiymatlari)
- Trigonometrik funktsiyalarning qiymatlarini hisoblash (sinuslar, kosinuslar va boshqalar).
- Turli darajalarga ko'tarilish
- Turli darajadagi ildizlarni ajratib olish
- Tasodifiy raqamlarni yaratish
- Yaxlitlash
- Va boshqalar.
- statik juft abs (ikki marta 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
}
Trigonometrik funktsiyalarning qiymatlarini hisoblash
Matematik klassi sizga turli trigonometrik funktsiyalarni hisoblash imkonini beradi - sinuslar, kosinuslar, tangenslar va boshqalar. Usullarning to'liq ro'yxatini rasmiy hujjatlar veb-saytida topishingiz mumkin . Quyida ushbu usullarning ro'yxati keltirilgan:- statik ikki tomonlama gunoh (ikki marta a)
- statik ikki tomonlama cos (ikki marta a)
- statik ikki marta tan (ikki marta a)
- statik juft asin (double a)
- statik juft akos (ikki marta a)
- statik juft atan (ikki marta a)
- statik ikki darajali daraja (ikki marta angrad)
- statik ikki baravar radian (ikki 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)));
}
Dastur chiqadi:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
Bu qisman darajadan radianga o'tkazishdagi xatolar tufayli sinuslar va kosinuslar jadvallariga to'liq mos kelmaydi.
Eksponentsiya
Raqamni bir darajaga ko'tarish uchun Math klassi quyidagi imzoga ega bo'lgan pow usulini taqdim etadi:static double pow(double a, double b)
Ushbu usul "a" parametrini "b" quvvatiga oshiradi. Misollar:
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
}
Ildiz qazib olish
Matematika sinfi kvadrat va kub ildizlarini olish usullarini taqdim etadi. Ushbu protsedura uchun quyidagi usullar javobgardir:- statik ikki sqrt (ikki marta a)
- statik ikki tomonlama cbrt (double 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
}
Tasodifiy raqamlarni yaratish
Tasodifiy sonlarni yaratish uchun Math sinfi tasodifiy usulni taqdim etadi. Ushbu usul 0,0 dan 1,0 gacha bo'lgan oraliqda tasodifiy musbat haqiqiy (ikki marta) sonni hosil qiladi. Usul imzosi quyidagicha ko'rinadi:public static double random()
Keling, misollarni ko'rib chiqaylik:
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(Math.random());
}
}
Asosiy usulni bajargandan so'ng, konsolda quyidagilar ko'rsatiladi:
0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
Bir oz manipulyatsiya bilan siz ma'lum bir diapazonda joylashgan butun tasodifiy sonlarni olish uchun Math sinfining tasodifiy usulidan foydalanishingiz mumkin. Mana, min va max ikkita argumentni oladigan va min (shu jumladan) dan maksimal (shu jumladan) oralig‘ida joylashgan tasodifiy butun sonni qaytaradigan funksiyaga misol:
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
RandomInARange usulini sinab ko'radigan asosiy usulni yozamiz:
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;
}
}
Asosiy usulni ishga tushirgandan so'ng, chiqish quyidagicha ko'rinishi mumkin:
-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
Yaxlitlash
Java-da raqamlarni yaxlitlash uchun vositalardan biri Math sinfining usullari hisoblanadi. Aniqrog'i, dumaloq, shift va zamin usullari:- statik uzun dumaloq (ikki marta a)
- statik int round(float a)
- statik ikki qavatli (ikki qavatli a)
- statik ikki qavatli shift (er-xotin 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
}
Xulosa
Ushbu maqolada biz matematika darsiga yuzaki nazar tashladik. Biz ushbu sinfdan qanday foydalanishni ko'rib chiqdik:- Modul qiymatlarini hisoblash;
- Trigonometrik funktsiyalarning qiymatlarini hisoblash;
- Raqamlarni kuchga ko'tarish;
- Kvadrat va kub ildizlarini ajratib oling;
- Tasodifiy raqamlarni yaratish;
- Dumaloq raqamlar.
GO TO FULL VERSION