Math pi java
Класс Math и пакет java.math
Класс Math содержит методы, связанные с геометрией и тригонометрией и прочей математики. Методы реализованы как static, поэтому можно сразу вызывать через Math.methodName() без создания экземпляра класса.
В классе определены две константы типа double: E и PI.
Популярные методы для тригонометрических функций принимают параметр типа double, выражающий угол в радианах.
- sin(double d)
- cos(double d)
- tan(double d)
- asin(double d)
- acos(double d)
- atan(double d)
- atan2(double y, double x)
Существуют также гиперболические функции: sinh(), cosh(), tanh().
Из них хорошо знакомы возведение в степень — pow(2.0, 3.0) вернёт 8.0.
Также популярен метод для извлечения квадратного корня — sqrt(4.0). Если аргумент меньше нуля, то возвращается NaN. Похожий метод cbrt() извлекает кубический корень. Если аргумент отрицательный, то и возвращаемое значение будет отрицательным: -27.0-> -3.0.
- abs() — возвращает абсолютное значение аргумента
- ceil() — возвращает наименьшее целое число, которое больше аргумента
- floor() — возвращает наибольшее целое число, которое меньше или равно аргументу
- max() — возвращает большее из двух чисел
- min() — возвращает меньшее из двух чисел
- nextAfter() — возвращает следующее значение после аргумента в заданном направлении
- nextUp() — возвращает следующее значение в положительном направлении
- rint() — возвращает ближайшее целое к аргументу
- round() — возвращает аргумент, округлённый вверх до ближайшего числа
- ulp() — возвращает дистанцию между значением и ближайшим большим значением
- copySign() — возвращает аргумент с тем же знаком, что у второго аргумента
- getExponent() — возвращает экспоненту
- IEEEremainder() — возвращает остаток от деления
- hypot() — возвращает длину гипотенузы
- random() — возвращает случайное число между 0 и 1 (единица в диапазон не входит)
- signum() — возвращает знак значения
- toDegrees() — преобразует радианы в градусы
- toRadians() — преобразует градусы в радианы
Вычислим наибольшее и наименьшее числа из двух заданных значений.
Большие числа
Если вам не хватает точности основных типов для представления целых и вещественных чисел, то можно использовать классы BigInteger и BigDecimal из пакета java.math, которые предназначены для выполнения действий с числами, состоящими из произвольного количества цифр.
Для преобразования обычного числа в число с произвольной точностью (называемое большим числом) вызывается статический метод valueOf():
При работе с большими числами нельзя использовать привычные математические операции с помощью + или * и т.п. Вместо них следует использовать специальные методы add() (сложение), multiply() (умножение), divide() (деление) и т.д.
В обычной практике эти числа используются редко.
Библиотека примеров приложений Java
Базовые типы
Замещающие типы
Без указателей
Массивы
Структурное программи-
рование
Обработка исключений
Возбуждение исключений
Классы обработки исключений
Блок finally
Строки String
Класс Math
Класс Vector
Класс Stack
Словарь на базе Hashtable
Словарь на базе Properties
Цифровые часы
Собственный класс
Наследование классов
Интерфейсы
1.11. Использование класса Math
В примере демонстрируются основные приемы работы с объектами класса Math.
Демонстрация
(ваш браузер должен уметь работать с аплетами Java)
Немного теории
Библиотека классов java.lang.Math содержит константы и методы, нужные для выполнения математических вычислений.
Ваша программа может использовать константы Math.E (число «е») Math.PI (число «пи»), вычислять с применением методов класса java.lang.Math различные тригонометрические функции, создавать генераторы случайных чисел, определять минимальное и максимальное значение, возводить числа в произвольно заданную степень, выполнять округление, определять абсолютное значение, извлекать квадратный корень и так далее.
Описание примера
Наш пример является аплетом . В нем демонстрируется использование методов класса Math, предназначенных для вычисления функции синуса и генерации случайных чисел. Кроме того, в вычислениях используется число «пи».
В окне аплета мы рисуем синусоиды случайной амплитуды и частоты, имеющие случайный фазовый сдвиг, а также случайные постоянные составляющие (рис. 1). При этом мы ограничиваем диапазоны изменения значений всех случайных величин для того чтобы синусоиды не были слишком громоздкими или наоборот, слишком мелкими.
Рис. 1. Окно аплета Sinus.java
Рисование выполняется следующим образом.
Вначале мы подготавливаем массивы координат точек, составляющих синусоиду. Размер этих массивов равен ширине окна аплета, определяемой динамически при инициализации аплета. Затем ссылки на массивы передаются методу fillPolygon из класса Graphics, который рисует закрашенный многоугольник.
Для рисования синусоид мы создаем отдельный поток как объект класса DrawSinus, созданный на базе класса Thread. Ссылка на него сохраняется в поле m_DrawSinusThread:
Что же касается метода paint аплета, то он определяет размеры окна аплета, закрашивает его желтым цветом и рисует вокруг окна черную рамку:
Задача рисования синусоид запускается методом start, получающим управление при активизации аплета:
Когда документ HTML, содержащий аплет, исчезает из окна браузера, метод stop останавливает задачу рисования:
В классе DrawSinus мы определили поле g класса Graphics и поле dimAppWndDimension класса Dimension. Первое из них предназначено для хранения контекста отображения, необходимого для рисования в окне аплета, а второе хранит размеры этого окна.
Перечисленные поля заполняются конструктором класса DrawSinus:
Основная работа по рисованию выполняется в цикле методом run.
В переменной nPoints хранится ширина окна:
Массивы xPoints и yPoints хранят координаты точек, составляющих синусоиду:
Для хранения компонент цвета, которым рисуется синусоида, мы определили три переменные с именами rColor, gColor и bColor:
Каждый раз перед рисованием очередной синусоиды метод run вычисляет случайные значения для максимального угла maxAngle, амплитуды Amplitude, постоянной составляющей Offset и фазового сдвига deltaFi:
Метод random возвращает случайное значение в диапазоне от 0.0 до 1.0. Это значение мы умножаем на максимальное значение, которое не должно быть превышено в процессе генерации случайных чисел.
Что касается максимального угла разворота синусоиды, то мы ограничиваем его значение величиной 30*Math.PI.
Максимальная амплитуда синусоиды ограничивается значением высоты окна аплета dimAppWndDimension.height. Это же значение применяется нами и для ограничения максимального смещения синусоиды по вертикали.
Величина фазового сдвига ограничена значением Math.PI /2.
Заполнение массивов координат выполняется в цикле:
Вычисление координаты по оси Y выполняется с применением метода Math.sin. Этому методу необходимо передавать значение угла, выраженного в радианах.
Случайные компоненты цвета для рисования синусоиды вычисляются следующим образом:
Они могут находиться в диапазоне от 0 до 255.
Установка цвета в контекст отображения выполняется методом setColor, определенным в классе Graphics:
После установки цвета метод run рисует изображение синусоиды с помощью метода fillPolygon:
Перед началом рисования следующей синусоиды в методе run выполняется задержка на 0.3 секунды:
Регулируя эту задержку, вы можете изменять скорость обновления окна аплета.
Класс Math
Класс Math содержит методы для выполнения основных числовых операций, таких как нахождение экспоненты, логарифма, квадратного корня и т. д.
Класс содержит две константы типа double: E и PI. Все методы в классе Math статичны.
Тип | Метод | Описание |
---|---|---|
double | abs(double a) | Возвращает абсолютное значение (модуль) числа типа double. |
float | abs(float a) | Возвращает абсолютное значение (модуль) числа типа float . |
int | abs(int a) | Возвращает абсолютное значение (модуль) числа типа int. |
long | abs(long a) | Возвращает абсолютное значение (модуль) числа типа long. |
double | acos(double a) | Возвращает арккосинус значения. Возвращенный угол находится в диапазоне от 0 до pi. |
double | asin(double a) | Возвращает арксинус значения. Возвращенный угол в диапазоне от -pi/2 до pi/2. |
double | atan(double a) | Возвращает арктангенс значения. Возвращенный угол в диапазоне от-pi/2 до pi/2. |
double | cbrt(double a) | Возвращает кубический корень аргумента. |
double | ceil(double a) | Возвращает наименьшее целое число, которое больше аргумента. |
double | copySign(double magnitude, double sign) | Возвращает аргумент с тем же знаком, что у второго аргумента. |
double | copySign(float magnitude, float sign) | Возвращает аргумент с тем же знаком, что у второго аргумента. |
double | cos(double a) | Возвращает косинус аргумента. |
double | cosh(double x) | Возвращает гиперболический косинус аргумента. |
int | decrementExact(int a) | Возвращает значение аргумента уменьшенное на единицу. |
long | decrementExact(long a) | Возвращает значение аргумента уменьшенное на единицу. |
double | exp(double a) | Возвращает экспоненту аргумента. |
double | floor(double a) | Возвращает наибольшее целое число, которое меньше или равно аргументу. |
double | hypot(double x, double y) | Возвращает длину гипотенузы (sqrt(x 2 +y 2 )). |
double | IEEEremainder(double f1, double f2) | Возвращает остаток от деления f1 на f2. |
int | incrementExact(int a) | Возвращает значение аргумента увеличенное на единицу. |
long | incrementExact(long a) | Возвращает значение аргумента увеличенное на единицу. |
double | log(double a) | Возвращает натуральный логарифм (по основанию e). |
double | log10(double a) | Возвращает логарифм по основанию 10. |
double | max(double a, double b) | Возвращает больший из аргументов. |
float | max(float a, float b) | Возвращает больший из аргументов. |
int | max(int a, int b) | Возвращает больший из аргументов. |
long | max(long a, long b) | Возвращает больший из аргументов. |
double | min(double a, double b) | Возвращает меньший из аргументов. |
float | min(float a, float b) | Возвращает меньший из аргументов. |
int | min(int a, int b) | Возвращает меньший из аргументов. |
long | min(long a, long b) | Возвращает меньший из аргументов. |
int | multiplyExact(int x, int y) | Возвращает произведение аргументов (x*y). |
long | multiplyExact(long x, long y) | Возвращает произведение аргументов (x*y). |
int | negateExact(int a) | Возвращает отрицательное значение аргумента. |
long | negateExact(long a) | Возвращает отрицательное значение аргумента. |
double | pow(double a, double b) | Возвращает значение первого аргумента, возведенное в степень второго аргумента. |
double | random() | Возвращает случайное число от 0.0 (включительно) до 1 (не включительно). |
double | rint(double a) | Возвращает округленное значение аргумента. |
int | round(double a) | Возвращает округленное значение аргумента. |
double | signum(double a) | Возвращает знак аргумента. |
floa | signum(float a) | Возвращает знак аргумента. |
double | sin(double a) | Возвращает синус аргумента. |
double | sinh(double a) | Возвращает гиперболический синус аргумента. |
doubl | sqrt(double a) | Возвращает квадратный корень аргумента. |
int | subtractExact(int x, int y) | Возвращает разность аргументов (x-y). |
long | subtractExact(long x, long y) | Возвращает разность аргументов (x-y). |
double | tan(double a) | Возвращает тангенс аргумента. |
double | tanh(double a) | Возвращает гиперболический тангенс аргумента. |
doubl | toDegrees() | Преобразует радианы в градусы. |
int | toIntExact(long value) | Преобразует аргумент типа long в int. |
doubl | toRadians() | Преобразует градусы в радианы. |
abs(double a) — возвращает абсолютное значение (модуль) числа типа double.
abs(float a) — возвращает абсолютное значение (модуль) числа типа float .
abs(int a) — возвращает абсолютное значение (модуль) числа типа int.
abs(long a) — возвращает абсолютное значение (модуль) числа типа long.
acos(double a) — возвращает арккосинус значения. Возвращенный угол находится в диапазоне от 0 до pi.
asin(double a) — возвращает арксинус значения. Возвращенный угол в диапазоне от -pi/2 до pi/2.
atan(double a) — возвращает арктангенс значения. Возвращенный угол в диапазоне от-pi/2 до pi/2.
cbrt(double a) — возвращает кубический корень аргумента.
ceil(double a) — возвращает наименьшее целое число, которое больше аргумента.
copySign(double magnitude, double sign) — возвращает аргумент с тем же знаком, что у второго аргумента.
copySign(float magnitude, float sign) — возвращает аргумент с тем же знаком, что у второго аргумента.
cos(double a) — возвращает косинус аргумента.
cosh(double x) — возвращает гиперболический косинус аргумента.
decrementExact(int a) — возвращает значение аргумента уменьшенное на единицу.
decrementExact(long a) — возвращает значение аргумента уменьшенное на единицу.
exp(double a) — возвращает экспоненту аргумента.
floor(double a) — возвращает наибольшее целое число, которое меньше или равно аргументу.
hypot(double x, double y) — возвращает длину гипотенузы (sqrt(x 2 +y 2 )).
IEEEremainder(double f1, double f2) — возвращает остаток от деления f1 на f2.
incrementExact(int a) — возвращает значение аргумента увеличенное на единицу.
incrementExact(long a) — возвращает значение аргумента увеличенное на единицу.
log(double a) — возвращает натуральный логарифм (по основанию e).
log10(double a) — возвращает логарифм по основанию 10.
max(double a, double b) — возвращает больший из аргументов.
max(float a, float b) — возвращает больший из аргументов.
max(int a, int b) — возвращает больший из аргументов.
max(long a, long b) — возвращает больший из аргументов.
min(double a, double b) — возвращает меньший из аргументов.
min(float a, float b) — возвращает меньший из аргументов.
min(int a, int b) — возвращает меньший из аргументов.
min(long a, long b) — возвращает меньший из аргументов.
multiplyExact(int x, int y) — возвращает произведение аргументов (x*y).
multiplyExact(long x, long y) — возвращает произведение аргументов (x*y).
negateExact(int a) — возвращает отрицательное значение аргумента.
negateExact(long a) — возвращает отрицательное значение аргумента.
pow(double a, double b) — возвращает значение первого аргумента, возведенное в степень второго аргумента (a b )
random() — возвращает случайное число от 0.0 (включительно) до 1 (не включительно).
rint(double a) — возвращает округленное значение аргумента.
round(double a) — возвращает округленное значение аргумента.
signum(double a) — возвращает знак аргумента.
signum(float a) — возвращает знак аргумента.
sin(double a) — возвращает синус аргумента.
sinh(double a) — возвращает гиперболический синус аргумента.
sqrt(double a) — возвращает квадратный корень аргумента.
subtractExact(int x, int y) — возвращает разность аргументов (x-y).
subtractExact(long x, long y) — возвращает разность аргументов (x-y).
tan(double a) — возвращает тангенс аргумента.
tanh(double a) — возвращает гиперболический тангенс аргумента.
toDegrees() — преобразует радианы в градусы.
toIntExact(long value) — преобразует аргумент типа long в int.
toRadians() — преобразует градусы в радианы.
Math — реализует ряд наиболее известных математических функций¶
Класс состоит из набора статических методов, производящих наиболее популярные математические вычисления и двух констант, имеющих особое значение в математике — это число Пи и экспонента. Часто этот класс еще называют классом-утилитой (Utility class).
Так как все методы класса статические нет необходимости создавать экземпляр этого класса — поэтому он и не имеет открытого конструктора.
Нельзя так же и унаследовать этот класс, поскольку он объявлен с атрибутом final
>java.lang. Math ¶ E ¶
public static final double
public static final double
java.lang. abs ( double a ) ¶ java.lang. abs ( float a ) java.lang. abs ( int a ) java.lang. abs ( long a )
static [double, float, int, long]
Возвращает абсолютное значение
Вернет значения типа int, если в качестве параметра будут переданы значения типа byte, short, char.
java.lang. acos ( double a ) ¶
Вернет значение арккосинуса угла в диапазоне от 0 до PI
java.lang. asin ( double a ) ¶
Вернет значение арксинуса угла в диапазоне от -PI/2 до PI/2
java.lang. atan ( double a ) ¶
Вернет значение арктангенса угла в диапазоне от -PI/2 до PI/2
java.lang. ceil ( double a ) ¶
Возвращает наименьшее целое число которое больше a.
Угол задается в радианах
java.lang. floor ( double a ) ¶
Возвращает целое число которое меньше a.
Угол задается в радианах
java.lang. cos ( double a ) ¶
Возвращает косинус угла (3)
java.lang. IEEEremainder ( double a, double b ) ¶
Возвращает остаток от деления a/b по стандарту IEEE 754
java.lang. sin ( double a ) ¶
Возвращает косинус угла
java.lang. tan ( double a ) ¶
Возвращает тангенс угла (3)
java.lang. exp ( double a ) ¶
Возвращает e в степени числа a
java.lang. log ( double a ) ¶
Возвращает натуральный логарифм числа a
java.lang. max ( double a, double b ) ¶ java.lang. max ( float a, float b ) java.lang. max ( long a, long b ) java.lang. max ( int a, int b )
static [double, float, long, int]
Возвращает наибольшее из двух чисел
java.lang. min ( double a, double b ) ¶ java.lang. min ( float a, float b ) java.lang. min ( long a, long b ) java.lang. min ( int a, int b )
static [double, float, long, int]
Возвращает наименьшее из двух чисел типа int
java.lang. pow ( double a, double b ) ¶
Возвращает а в степени b
Возвращает случайное число в диапазоне от 0.0 до 1.0
java.lang. rint ( double a ) ¶
Возвращает int число, ближайшее к a
java.lang. round ( double a ) ¶
Возвращает значение типа long ближайшее по значению к а
java.lang. sqrt ( double a ) ¶
Возвращает положительный квадратный корень числа a
java.lang. toDegrees ( double angrad ) ¶
Преобразует значение угла из радианов в градусы
java.lang. toRadians ( double angdeg ) ¶
Преобразует значение угла из градусов в радианы
Adblockdetector