Дар ин мақола мо шарҳи мухтасари синфи математикаро дар Java медиҳем. Биёед дар бораи усулҳои ин синф ва чӣ гуна истифода бурдани онҳо сӯҳбат кунем. Синфи Math дар бастаи java.lang ҷойгир аст ва маҷмӯи усулҳои статикиро барои иҷрои як қатор ҳисобҳои гуногуни математикӣ таъмин мекунад. Дар зер намунаҳои ҳисобҳо оварда шудаанд, ки барои онҳо синфи Math муфид буда метавонад:
- Ҳисоб кардани арзишҳои мутлақ (арзишҳои модулӣ)
- Ҳисоб кардани арзишҳои функсияҳои тригонометрӣ (синусҳо, косинусҳо ва ғ.)
- Баландшавӣ ба дараҷаҳои гуногун
- Истихроҷи решаҳои дараҷаҳои гуногун
- Насли рақамҳои тасодуфӣ
- Якчандкунӣ
- Ва гайра.
- abs дукаратаи статикӣ (дучандон a)
- шинокунандаи статикӣ abs (шино a)
- статикӣ int abs (int a)
- абс дароз статикӣ (дароз 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
}
Ҳисоб кардани арзишҳои функсияҳои тригонометрӣ
Синфи Math ба шумо имкон медиҳад, ки функсияҳои гуногуни тригонометриро ҳисоб кунед - синусҳо, косинусҳо, тангенсҳо ва ғайра. Рӯйхати пурраи усулҳоро дар вебсайти расмии ҳуҷҷатҳо пайдо кардан мумкин аст . Дар зер рӯйхати ин усулҳо оварда шудааст:- гуноҳи дукаратаи статикӣ (дучандон а)
- cos дукаратаи статикӣ (дучандон a)
- таниши дукаратаи статикӣ (дучандон а)
- статикии дукарата (дучандон а)
- acos дукаратаи статикӣ (дучандон а)
- атан дукаратаи статикӣ (дучандон а)
- дукаратаи статикӣ ба дараҷаҳо (ангради дукарата)
- статикии дукарата ба радианҳо (ангдеги дукарата)
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)));
}
Барнома мебарорад:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
Ки он ба ҷадвалҳои синусҳо ва косинусҳо комилан мувофиқ нест, ки қисман аз сабаби хатогиҳо дар табдor дараҷаҳо ба радианҳо.
Экспонентатсия
Барои баланд бардоштани адад, синфи Math усули pow пешниҳод мекунад, ки дорои имзои зерин аст:static double pow(double a, double b)
Ин усул параметри "a" -ро ба қудрати "b" баланд мекунад. Мисолҳо:
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
}
Истихроҷи реша
Синфи Math усулҳои гирифтани решаҳои квадратӣ ва кубиро пешниҳод мекунад. Усулҳои зерин барои ин тартиб масъуланд:- sqrt дукаратаи статикӣ (дучандон a)
- статикии дукарата cbrt (дучандон а)
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
}
Насли рақамҳои тасодуфӣ
Барои тавлиди рақамҳои тасодуфӣ, синфи Math усули тасодуфиро таъмин мекунад. Ин усул рақами тасодуфии мусбати воқеӣ (дучандон) дар диапазони аз 0,0 то 1,0 тавлид мекунад. Имзои усул чунин менамояд:public static double random()
Биёед мисолҳоро дида бароем:
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(Math.random());
}
}
Пас аз иҷрои усули асосӣ, дар консол инҳо нишон дода шуданд:
0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
Бо як каме дасткорӣ, шумо метавонед усули тасодуфии синфи Math-ро барои ба даст овардани ададҳои тасодуфии бутун, ки дар диапазони муайян ҷойгиранд, истифода баред. Ин аст мисоли функсияе, ки ду аргументи min ва максро мегирад ва адади тасодуфиро бармегардонад, ки дар диапазон аз min (дохил) то макс (бо назардошти) ҷойгир аст:
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
Биёед усули асосиро нависед, ки дар он мо усули 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;
}
}
Пас аз иҷро кардани усули асосӣ, натиҷа метавонад чунин бошад:
-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
Якчандкунӣ
Барои яклухткунии рақамҳо дар Java яке аз воситаҳо усулҳои синфи Math мебошад. Аниқтараш, усулҳои мудаввар, шифт ва фарш:- даври дарози статикӣ (дучандон а)
- даври статикӣ (шинокунандаи 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
}
Хулоса
Дар ин мақола мо ба дарси математика ба таври рӯякӣ назар кардем. Мо дида баромадем, ки чӣ тавр истифода бурдани ин синф шумо метавонед:- Модули арзишҳоро ҳисоб кунед;
- Ҳисоб кардани арзишҳои функсияҳои тригонометрӣ;
- Баланд бардоштани рақамҳо ба қудрат;
- Решаҳои мураббаъ ва мукаабро ҷудо кунед;
- Эҷоди рақамҳои тасодуфӣ;
- Рақамҳои мудаввар.
GO TO FULL VERSION