Автор: Ткаченко О.М.
Математичні функції в Java. Запис і обчислення виразів.
Для використання математичних функцій слід скористатися бібліотекою Math.
Основні функції і константи класу Math.
Константа або функція |
Пояснення |
E |
Константа е |
PI |
Константа |
abs( ) |
Модуль числа або виразу |
sqrt( ) |
Квадратний корінь |
sin( ) |
Синус |
cos( ) |
Косинус |
tan( ) |
Тангенс |
log( ) |
Натуральний логарифм (ln x) |
log10( ) |
Десятковий логарифм (lg x) |
pow( ) |
Піднесення до степеня |
exp( ) |
Експонента (е f(x)) |
asin( ) |
Арксинус |
acos( ) |
Арккосинус |
atan( ) |
Арктангенс |
random( ) |
Функція випадкового дробового числа з проміжку [0; 1) |
Приклад 1. Обчислити значення виразу:
для x= –0,2.
Лістинг програми:
public class vyraz {
public static void main(String[] args) {
double x=-0.2;
double y;
y=(3*Math.pow(Math.sin(x),5)-Math.PI*Math.exp(x))/(2+Math.sqrt(Math.abs(x)+1));
System.out.println("y="+y);
}
}
Зверніть увагу на синтаксис використання математичних функцій класу Math та на використання дужок для забезпечення правильного пріоритету виконання операцій.
Для уникнення повторів префіксу Math перед вживанням кожної функції чи константи математичної бібліотеки треба додати відповідну вказівку на початку програми: import static java.lang.Math.*; Тоді наша програма буде мати такий вигляд:
import static java.lang.Math.*;
public class vyraz {
public static void main(String[] args) {
double x=-0.2;
double y;
y=(3*pow(sin(x),5)-PI*exp(x))/(2+sqrt(abs(x)+1));
System.out.println("y="+y);
}
}
Випадкові числа
Клас Math містить функцію random(), що генерує деяке випадкове дробове число типу double з проміжку [0; 1).
double a;
…
a = Math.random( );
Змінна а отримає деяке випадкове число з проміжку [0; 1). Для задання іншого проміжку слід виконати деякі елементарні перетворення (табл. )
Приклади генерування випадкового числа:
Вираз |
Проміжок |
Math.random() |
[0; 1) |
5*Math.random() |
[0; 5) |
–7*Math.random() |
(–7; 0] |
11 + 8*Math.random() |
[11; 19) |
a + (b–a)*Math.random() |
[a; b) |
Зауваження:
- функція random() описує напівінтервал (з відкритим кінцем 1), це слід врахувати при моделюванні;
- один і той же фрагмент програми з random() у різні моменти часу генерує різні випадкові числа.
За необхідності використання цілих випадкових чисел, слід скористатися функцією round() з класу Math або скористатись синтаксисом звужувальних перетворень типів.
Наприклад, команда з округленням до найближчого цілого
x = Math.round(–5 + 20*Math.random()); генерує випадкове число типу long з проміжку [–5; 15] (включно з 15), а команда x = (long)(–5 + 20*Math.random()); – з проміжку [–5; 14], оскільки префікс (long) звуження типу відкидає дробову частину аргументу.
Приклад 2. Випадкова точка на площині.
Згенерувати випадкову точку площини з прямокутника, зображеного на рисунку, та вивести її координати на екран.
Розв’язання.
1. Модель. Випадкова точка на площині – це точка з двома випадковими координатами. Отже, необхідно згенерувати два випадкових числа з потрібного проміжку. Відповідно до задачі, випадкова координата xm повинна належати проміжку [х1; х2], координата ym – проміжку [y1; y2].
2. Програма. У програмі треба задати генерування випадкових xm та ym в межах власних проміжків. Задамо координати для вершин прямокутника, наприклад:
x1 = 2.3 x2 = 5.2 y1 = 1.0 y2 = 3.5
Лістинг програми:
public class Tochka {
public static void main(String[] args) {
// TODO Auto-generated method stub
// оголошуємо і одразу ініціалізуємо
// координати вершин прямокутника
double x1 = 2.3;
double x2 = 5.2;
double y1 = 1.0;
double y2 = 3.5;
double xm, ym;
// ініціалізуємо випадкові координати точки
// в межах прямокутника
xm = x1 + (x2-x1)*Math.random();
ym = y1 + (y2-y1)*Math.random();
// виводимо на екран координати точки М
System.out.println("M(" + xm + "; "+ym+")");
}
}
Ось приклад результату роботи програми:
M(2.341727899216497; 2.2964396510681198)
Зауваження.
Оскільки random() генерує випадкове дробове число з напівінтервалу, то фактично xm [х1; х2), ym [y1; y2).