Java класс Math

Разработчику на Java доступно множество готовых (или библиотечных) классов и методов, полезных для использования в собственных программах. Наличие библиотечных решений позволяет изящно решать множество типовых задач.

Далее рассмотрим класс Math, содержащий различные математически функции. Рассмотрим некоторые из них:

  1. Math.abs(n) — возвращает модуль числа n.
  2. Math.round(n) — возвращает целое число, ближайшее к вещественному числу n (округляет n).
  3. Math.ceil(n) — возвращает ближайшее к числу n справа число с нулевой дробной частью (например, Math.ceil(3.4) в результате вернёт 4.0).
  4. Math.cos(n), Math.sin(n), Math.tan(n) — тригонометрические функции sin, cos и tg от аргумента n, указанного в радианах.
  5. Math.acos(n), Math.asin(n), Math.atan(n) — обратные тригонометрические функции, возвращают угол в радианах.
  6. Math.toDegrees(n) — возвращает градусную меру угла в n радианов.
  7. Math.toRadians(n) — возвращает радианную меру угла в n градусов.
  8. Math.sqrt(n) — возвращает квадратный корень из n.
  9. Math.pow(n, b) — возвращает значение степенной функции n в степени b, основание и показатель степени могут быть вещественными.
  10. Math.log(n) — возвращает значение натурального логарифма числа n.
  11. Math.log10(n) — возвращает значение десятичного логарифма числа n.

Все перечисленные функции принимают вещественные аргументы, а тип возвращаемого значения зависит от типа аргумента и от самой функции.

Кроме функций в рассматриваемом классе имеются две часто используемых константы:

  1. Math.PI — число «пи», с точностью в 15 десятичных знаков.
  2. Math.E — число Неппера (основание экспоненциальной функции), с точностью в 15 десятичных знаков.

Примеры использования:

System.out.println(Math.abs(-2.33)); // выведет 2.33
System.out.println(Math.round(Math.PI)); // выведет 3
System.out.println(Math.round(9.5)); // выведет 10
System.out.println(Math.round(9.5-0.001)); // выведет 9
System.out.println(Math.ceil(9.4)); // выведет 10.0
double c = Math.sqrt(3*3 + 4*4);
System.out.println(c); // выведет гипотенузу треугольника с катетами 3 и 4
double s1 = Math.cos(Math.toRadians(60));
System.out.println(s1); // выведет косинус угла в 60 градусов

Задачи

  1. Вычислить и вывести на экран косинусы углов в 60, 45 и 40 градусов без использования функции Math.toDegrees(n).

  2. В переменных a и b лежат положительные длины катетов прямоугольного треугольника. Вычислить и вывести на экран площадь треугольника и его периметр.

  3. Натуральное положительное число записано в переменную n. Определить и вывести на экран, сколько цифр в числе n.

  4. В переменной n лежит некоторое вещественное число. Вычислить и вывести на экран значение функции «сигнум» от этого числа (-1, если число отрицательное; 0, если нулевое; 1 если, положительное).

Псевдослучайные числа

В классе Math есть полезная функция без аргументов, которая позволяет генерировать псевдослучайные значения, т.е. при каждом вызове этой функции она будет возвращать новое значение, предсказать которое очень сложно (не вдаваясь в подробности можно сказать, что теоретически это всё-таки возможно, именно поэтому генерируемые функцией числа называются не случайными, а псевдослучайными).

Итак, Math.random() возвращает псевдослучайное вещественное число из промежутка [0;1).

Если требуется получить число из другого диапазона, то значение функции можно умножать на что-то, сдвигать и, при необходимости, приводить к целым числам.

Примеры:

System.out.println(Math.random()); // вещественное число из [0;1)
System.out.println(Math.random()+3); // вещественное число из [3;4)
System.out.println(Math.random()*5); // вещественное число из [0;5)
System.out.println( (int)(Math.random()*5) ); // целое число из [0;4]
System.out.println(Math.random()*5+3); // вещественное число из [3;8)
System.out.println( (int)(Math.random()*5+3) ); // целое число из [3;7]
System.out.println( (int)(Math.random()*11) - 5 ); // целое число из [-5;5]

Рассмотрим последовательность преобразований, необходимых для того, чтобы из значения функции Math.random() получить целое случайное число из отрезка [-1;3]:

Псевдослучайные числа имеют серьёзнейшие практические приложения и используются, например, в криптографии.

Задачи

  1. Создайте программу, которая будет генерировать и выводить на экран вещественное псевдослучайное число из промежутка [-3;3).

  2. Натуральное положительное число записано в переменную n. Создайте программу, которая будет генерировать и выводить на экран целое псевдослучайное число из отрезка [-n;n].

  3. В переменные a и b записаны целые числа, при этом b больше a. Создайте программу, которая будет генерировать и выводить на экран целое псевдослучайное число из отрезка [a;b].