Sa artikulong ito, magbibigay kami ng maikling pangkalahatang-ideya ng klase sa Math sa Java. Pag-usapan natin ang mga pamamaraan ng klase na ito at kung paano gamitin ang mga ito. Ang klase ng Math ay naninirahan sa java.lang package at nagbibigay ng isang set ng mga static na pamamaraan para sa pagsasagawa ng maraming iba't ibang mga kalkulasyon sa matematika. Ang mga sumusunod ay mga halimbawa ng mga kalkulasyon kung saan maaaring maging kapaki-pakinabang ang klase sa Math:
- Pagkalkula ng mga ganap na halaga (mga halaga ng modulo)
- Pagkalkula ng mga halaga ng mga function ng trigonometriko (sines, cosine, atbp.)
- Pagtaas sa iba't ibang antas
- Pagkuha ng mga ugat ng iba't ibang antas
- Random na pagbuo ng numero
- Pag-ikot
- atbp.
- static na double abs(double a)
- static float abs(float a)
- static int abs(int a)
- static na mahabang abs (mahabang 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
}
Pagkalkula ng mga function ng trigonometriko
Binibigyang-daan ka ng klase ng Math na kalkulahin ang iba't ibang trigonometric function - mga sine, cosine, tangent, atbp. Ang kumpletong listahan ng mga pamamaraan ay matatagpuan sa opisyal na website ng dokumentasyon . Nasa ibaba ang isang listahan ng mga pamamaraang ito:- static na dobleng kasalanan (doble a)
- static na double cos(double a)
- static na double tan(double a)
- static na dobleng asin(doble a)
- static na double acos(double a)
- static na double atan(double a)
- static na doble sa Degrees(dobleng angrad)
- static na double toRadians(double 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)));
}
Ang programa ay maglalabas ng:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
Na hindi masyadong tumutugma sa mga talahanayan ng mga sine at cosine, bahagyang dahil sa mga pagkakamali sa pag-convert mula sa mga degree sa radian.
Exponentiation
Upang itaas ang isang numero sa isang kapangyarihan, ang klase ng Math ay nagbibigay ng isang paraan ng pow, na may sumusunod na lagda:static double pow(double a, double b)
Itinataas ng pamamaraang ito ang parameter na `a` sa kapangyarihan `b`. Mga halimbawa:
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
}
Pagkuha ng ugat
Ang klase sa Math ay nagbibigay ng mga pamamaraan para sa pagkuha ng square at cube roots. Ang mga sumusunod na pamamaraan ay responsable para sa pamamaraang ito:- static na double sqrt(double a)
- static na double 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
}
Random na pagbuo ng numero
Upang makabuo ng mga random na numero, ang klase ng Math ay nagbibigay ng random na pamamaraan. Ang paraang ito ay bumubuo ng random na positibong tunay (doble) na numero sa hanay mula 0.0 hanggang 1.0. Ang lagda ng pamamaraan ay ganito ang hitsura:public static double random()
Tingnan natin ang mga halimbawa:
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println(Math.random());
}
}
Pagkatapos isagawa ang pangunahing pamamaraan, ang mga sumusunod ay ipinakita sa console:
0.37057465028778513
0.2516253742011597
0.9315649439611121
0.6346725713527239
0.7442959932755443
Sa kaunting pagmamanipula, maaari mong gamitin ang random na paraan ng klase ng Math upang makakuha ng integer na mga random na numero na nasa isang tiyak na hanay. Narito ang isang halimbawa ng isang function na tumatagal ng dalawang argument na min at max at nagbabalik ng random na integer na nasa hanay mula sa min (inclusive) hanggang max (inclusive):
static int randomInARange(int min, int max) {
return (int) (Math.random() * ((max - min) + 1)) + min;
}
Sumulat tayo ng isang Pangunahing pamamaraan kung saan susuriin natin ang pamamaraang 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;
}
}
Pagkatapos patakbuhin ang pangunahing pamamaraan, ang output ay maaaring magmukhang ganito:
-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
Pag-ikot
Para sa mga rounding na numero sa Java, ang isa sa mga tool ay ang mga pamamaraan ng klase ng Math. Mas tiyak, ang mga pamamaraan ng bilog, kisame at sahig:- static na mahabang bilog (doble a)
- static int round(float a)
- static na double floor (doble a)
- static na double ceil(double 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
}
Konklusyon
Sa artikulong ito, tiningnan natin ang klase sa Math. Tiningnan namin kung paano mo magagamit ang klase na ito:- Kalkulahin ang mga halaga ng modulo;
- Kalkulahin ang mga halaga ng trigonometriko function;
- Itaas ang mga numero sa mga kapangyarihan;
- I-extract ang square at cube roots;
- Bumuo ng mga random na numero;
- Mga bilog na numero.
GO TO FULL VERSION