במאמר זה, אנו נותנים סקירה קצרה של כיתת המתמטיקה בג'אווה. בואו נדבר על השיטות של מחלקה זו וכיצד להשתמש בהן. הכיתה Math שוכנת בחבילת java.lang ומספקת סט של שיטות סטטיות לביצוע מספר חישובים מתמטיים שונים. להלן דוגמאות לחישובים שעבורם כיתה מתמטיקה עשויה להיות שימושית:
- חישוב ערכים מוחלטים (ערכי מודולו)
- חישוב ערכי פונקציות טריגונומטריות (סינוס, קוסינוס וכו')
- גובה בדרגות שונות
- חילוץ שורשים בדרגות שונות
- יצירת מספרים אקראיים
- עיגול
- וכו.
- בטן כפולה סטטית (כפול a)
- סטטי float abs(float 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
}
חישוב ערכי פונקציות טריגונומטריות
כיתת המתמטיקה מאפשרת לך לחשב פונקציות טריגונומטריות שונות - סינוסים, קוסינוסים, טנג'ים וכו'. רשימה מלאה של שיטות ניתן למצוא באתר התיעוד הרשמי . להלן רשימה של שיטות אלה:- חטא כפול סטטי (כפול א)
- cos כפול סטטי (כפול a)
- שיזוף כפול סטטי (כפול א)
- סטטי כפול אסין (כפול א)
- סטטי double acos(double a)
- אטאן כפול סטטי (כפול א)
- כפול סטטי למעלות (אנגרד כפול)
- כפול סטטי toRadians(כפול 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)));
}
התוכנית תוציא:
0.0
0.49999999999999994
1.0
1.0
0.8660254037844387
6.123233995736766E-17
מה שלא לגמרי מתאים לטבלאות הסינוסים והקוסינוסים, בין היתר בגלל טעויות בהמרה ממעלות לרדיאנים.
אקספוננציה
כדי להעלות מספר לחזקה, הכיתה 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
}
חילוץ שורשים
כיתת המתמטיקה מספקת שיטות לנטילת שורשים מרובעים וקוביות. השיטות הבאות אחראיות להליך זה:- סטטי כפול sqrt(double a)
- סטטי כפול cbrt(כפול 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
}
יצירת מספרים אקראיים
כדי ליצור מספרים אקראיים, המחלקה 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. ליתר דיוק, שיטות העגול, התקרה והרצפה:- עגול ארוך סטטי (כפול א)
- סטטי int round(float a)
- רצפה כפולה סטטית (כפול א)
- תקרה כפולה סטטית (כפול 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