Математичні обчислення та клас Math
У Java для виконання математичних обчислень існує вбудований клас `Math`, який надає широкий набір статичних методів для різних математичних операцій, таких як арифметика, тригонометрія, логарифми, експоненти, округлення та інші. Клас `Math` є частиною стандартної бібліотеки Java і не потребує імпорту, оскільки належить до пакету `java.lang`.
Основні математичні операції та методи класу `Math`
1. Арифметичні операції
Клас `Math` надає основні арифметичні операції, які можуть бути корисні для розширених обчислень.
- `Math.abs(x)` — повертає абсолютне значення числа `x`. Підтримуються типи `int`, `long`, `float`, `double`.
Приклад:
int absValue = Math.abs(-10); // результат: 10 - `Math.max(a, b)` — повертає більше із двох чисел.
Приклад:
int maxValue = Math.max(5, 10); // результат: 10 - `Math.min(a, b)` — повертає менше із двох чисел.
Приклад:
int minValue = Math.min(5, 10); // результат: 5 - `Math.pow(a, b)` — підносить число `a` до степеня `b` (a^b).
Приклад:
double result = Math.pow(2, 3); // результат: 8.0 - `Math.sqrt(x)` — повертає квадратний корінь числа `x`.
Приклад:
double sqrtValue = Math.sqrt(16); // результат: 4.0
2. Тригонометричні операції
Для роботи з тригонометрією в класі `Math` є методи для обчислення синусів, косинусів, тангенсів, а також для перетворення кутів між градусами та радіанами.
- `Math.sin(x)` — синус кута, де `x` — кут у радіанах.
Приклад:
double sinValue = Math.sin(Math.PI / 2); // результат: 1.0 - `Math.cos(x)` — косинус кута, де `x` — кут у радіанах.
Приклад:
double cosValue = Math.cos(Math.PI); // результат: -1.0 - `Math.tan(x)` — тангенс кута, де `x` — кут у радіанах.
Приклад:
double tanValue = Math.tan(Math.PI / 4); // результат: 1.0 - `Math.toRadians(degrees)` — перетворює градуси в радіани.
Приклад:
double radians = Math.toRadians(90); // результат: 1.5707963267948966 - `Math.toDegrees(radians)` — перетворює радіани в градуси.
Приклад:
double degrees = Math.toDegrees(Math.PI / 2); // результат: 90.0
3. Логарифми та експоненціальні функції
- `Math.log(x)` — повертає натуральний логарифм числа `x` (log_e x).
Приклад:
double logValue = Math.log(10); // результат: 2.302585092994046 - `Math.log10(x)` — повертає десятковий логарифм числа `x` (log_10 x).
Приклад:
double log10Value = Math.log10(100); // результат: 2.0 - `Math.exp(x)` — повертає значення e^x (експонента).
Приклад:
double expValue = Math.exp(1); // результат: 2.718281828459045
4. Округлення
Клас `Math` також надає методи для округлення чисел.
- `Math.round(x)` — округлює число `x` до найближчого цілого числа.
Приклад:
long roundedValue = Math.round(2.5); // результат: 3 - `Math.floor(x)` — округлює число `x` до найближчого меншого цілого числа.
Приклад:
double floorValue = Math.floor(2.9); // результат: 2.0 - `Math.ceil(x)` — округлює число `x` до найближчого більшого цілого числа.
Приклад:
double ceilValue = Math.ceil(2.1); // результат: 3.0
5. Випадкові числа
Для генерації випадкових чисел у класі `Math` є метод `random`.
- `Math.random()` — повертає випадкове число типу `double` у діапазоні від 0.0 до 1.0 (не включаючи 1.0).
Приклад:
double randomValue = Math.random(); // результат: випадкове число між 0.0 і 1.0
Якщо потрібно згенерувати випадкове число в іншому діапазоні, наприклад від 0 до 100, можна скористатися такою формулою:
int randomInt = (int) (Math.random() * 100); // результат: випадкове число між 0 і 99
6. Інші корисні методи
- `Math.cbrt(x)` — повертає кубічний корінь числа `x`.
Приклад:
double cbrtValue = Math.cbrt(27); // результат: 3.0 - `Math.hypot(x, y)` — повертає довжину гіпотенузи трикутника з катетами `x` і `y`. Це те саме, що √(x² + y²).
Приклад:
double hypotValue = Math.hypot(3, 4); // результат: 5.0 - `Math.signum(x)` — повертає знак числа `x`. Результат:
– -1.0, якщо число негативне.
– 1.0, якщо число позитивне.
– 0.0, якщо число рівне нулю.
Приклад:
double signValue = Math.signum(-10); // результат: -1.0
Приклад використання різних методів класу Math
public class MathExample {
public static void main(String[] args) {
// Арифметичні операції
System.out.println(“Абсолютне значення: ” + Math.abs(-20));
System.out.println(“Максимум: ” + Math.max(5, 10));
System.out.println(“Мінімум: ” + Math.min(5, 10));
System.out.println(“Степінь: ” + Math.pow(2, 3));
System.out.println(“Квадратний корінь: ” + Math.sqrt(25));
// Тригонометрія
System.out.println(“Синус 90 градусів: ” + Math.sin(Math.toRadians(90)));
System.out.println(“Косинус 0 градусів: ” + Math.cos(Math.toRadians(0)));
// Логарифми та експоненти
System.out.println(“Натуральний логарифм: ” + Math.log(10));
System.out.println(“Експонента: ” + Math.exp(1));
// Округлення
System.out.println(“Округлення: ” + Math.round(2.6));
System.out.println(“Підлога: ” + Math.floor(2.6));
System.out.println(“Стеля: ” + Math.ceil(2.1));
// Випадкові числа
System.out.println(“Випадкове число: ” + Math.random());
// Інші операції
System.out.println(“Кубічний корінь: ” + Math.cbrt(8));
System.out.println(“Гіпотенуза для
катетів 3 і 4: ” + Math.hypot(3, 4));
}
}
Висновок
Клас `Math` — це набір статичних методів для виконання математичних операцій у Java. Завдяки йому ви можете виконувати арифметичні, тригонометричні, логарифмічні та інші математичні операції, генерувати випадкові числа, а також округлювати значення.