Как возвести в степень в java
12.17. Java — Метод Math.pow()
Метод Math.pow() — возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Синтаксис
Параметры
Подробная информация о параметрах:
Возвращаемое значение
Пример 1: возведение числа в квадрат и куб
Для возведения любого числа в квадрат с помощью метода Math.pow() необходимо в качестве второго аргумента использовать значение 2, а для возведения в куб — 3 и т.д. Заметьте, для вывода на экран целого значения используется «%.0f», так как метод возвращает double значение.
Получим следующий результат:
Пример 2: возведение числа в дробную степень
Получим следующий результат:
Пример 3: возведение числа в отрицательную степень
Получим следующий результат:
Пример 4: возведение отрицательного числа степень
Заметьте, что при возведении отрицательного числа в дробную степень мы не получим результат (NaN).
Дополнительные классы
abs(double value) : возвращает абсолютное значение для аргумента value
atan(double value) : возвращает арктангенс value
cbrt(double value) : возвращает кубический корень числа value
ceil(double value) : возвращает наименьшее целое число с плавающей точкой, которое не меньше value
cos(double d) : возвращает косинус угла d
cosh(double d) : возвращает гиперболический косинус угла d
exp(double d) : возвращает основание натурального логарифма, возведенное в степень d
floor(double d) : возвращает наибольшее целое число, которое не больше d
floorDiv(int a, int b) : возвращает целочисленный результат деления a на b
log(double a) : возвращает натуральный логарифм числа a
log1p(double d) : возвращает натуральный логарифм числа (d + 1)
log10(double d) : возвращает десятичный логарифм числа d
max(double a, double b) : возвращает максимальное число из a и b
min(double a, double b) : возвращает минимальное число из a и b
pow(double a, double b) : возвращает число a, возведенное в степень b
random() : возвращает случайное число от 0.0 до 1.0
rint(double value) : возвращает число double, которое представляет ближайшее к числу value целое число
round(double d) : возвращает число d, округленное до ближайшего целого числа
scalb(double value, int factor) : возвращает произведение числа value на 2 в степени factor
sin(double value) : возвращает синус угла value
sinh(double value) : возвращает гиперболический синус угла value
sqrt(double value) : возвращает квадратный корень числа value
tan(double value) : возвращает тангенс угла value
tanh(double value) : возвращает гиперболический тангенс угла value
toDegrees(double value) переводит радианы в градусы и toRadians(double value) — градусы в радианы
Изучаем Java
Класс Math содержит набор математических функций, часто оказывающихся необходимыми при решении разных задач.
Чтобы извлечь квадратный корень из числа, применяют метод sqrt.
double х = 4;
double у = Math.sqrt(х);
System.out.println(у); // Печатает число 2.0.
Между методами println и sqrt есть небольшая разница. Метод println действует на объект System, out, имея второй параметр у — число, подлежащее выводу. (Напомним, что out — это объект, определенный в классе System и представляющий собой стандартное устройство вывода.)
В то же время метод sqrt в классе Math не работает ни с одним объектом. Он имеет единственный параметр х — число, из которого нужно извлечь корень. Такие методы называются статическими.
В языке Java нет оператора возведения в степень: для этого нужно использовать метод pow из класса Math.
Оператор
double у = Math.pow(x,a) ;
присваивает переменной у значение переменной х, возведенное в степень а.
Оба параметра метода pow, а также возвращаемое им значение имеют тип double.
Класс Math содержит обычные тригонометрические функции:
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
Кроме этого, в него включены экспоненциальная и обратная к ней логарифмическая функции (натуральный логарифм):
Math.exp
Math.log
В классе определены также две константы
Math.PI
Math.E,
обозначающие аппроксимации чисел Пи и е.
Для повышения своей производительности функции в классе Math используют программы из встроенного модуля для вычислений с плавающей точкой.
Если точность вычислений важнее скорости их выполнения, используйте класс strictMath.
Он реализует алгоритмы из библиотеки «Freely Distributable Math Library» («Свободно распространяемая библиотека математических функций») fdlibm, гарантирующей идентичность результатов на всех платформах.
Исходные тексты программ, реализующих эти алгоритмы, можно найти на web-странице http://www.netlib.org/fdlibm/index.html. (В библиотеке fdlibm дается несколько определений каждой функции, класс StrictMath следует версии IEEE754, имена функций в которой начинаются с буквы «е».)
Преобразования числовых типов
Часто возникает необходимость преобразовать один числовой тип в другой.
На рис. 3.1 показаны разрешенные преобразования.
Шесть черных стрелок на рис. 3.1 обозначают преобразования, которые выполняются без потери информации. Три серые стрелки означают преобразования, при которых может произойти потеря точности. Например, количество цифр в большом целом числе 123456789 превышает количество цифр, которое может быть представлено типом float.
Число, преобразованное в тип float, имеет правильную величину, но несколько меньшую точность.
int n = 123456789;
float f = n; // Число n равно 1.23456789268.
Рис. 3.1 Разрешенные преобразования числовых типов
Если два значения объединяются бинарным оператором (например n+f, где n — целое число, a f — число с плавающей точкой), то перед выполнением операции оба операнда преобразовываются в числа, имеющие одинаковый тип.
Если хотя бы один из операндов имеет тип double, то второй тоже преобразовывается в число типа double.
В противном случае, если хотя бы один из операндов имеет тип float, то второй тоже преобразовывается в число типа float.
В противном случае, если хотя бы один из операндов имеет тип long, то второй тоже преобразовывается в число типа long.
В противном случае оба операнда преобразовываются в числа типа int.
Приведение числовых типов
В предыдущем разделе мы видели, что при необходимости значения типа int автоматически преобразовываются в значения типа double. С другой стороны, есть несколько очевидных ситуаций, когда число типа double рассматривается как целое. Преобразования чисел в языке Java возможны, однако, разумеется, при этом может происходить потеря информации. Такие преобразования называются приведением типа (cast).
Синтаксически приведение типа задается парой скобок, внутри которых
указывается желательный тип, а затем — имя переменной. Например,
double х = 9.997;
int nx = (int)x;
Теперь в результате приведения значения с плавающей точкой к целому типу переменная nх равна 9, поскольку при этом дробная часть числа отбрасывается.
Если нужно округлить число с плавающей точкой до ближайшего целого числа (что во многих случаях является намного более полезным), используется метод
Math.round.
double x = 9.997;
int nx = (int) Math. round (x);
Теперь переменная nx равна 10. При вызове метода round по-прежнему нужно выполнять приведение поскольку возвращаемое им значение имеет тип long, и присвоить его переменной типа int можно лишь с помощью явного приведения.
При попытке привести число одного типа к другому результат может выйти за пределы допустимого диапазона. В этом случае результат будет усечен.
Например, выражение (byte) 300 равно 44. Поэтому рекомендуется явно проверять заранее, будет ли результат лежать в допустимом диапазоне после приведения типов.
Как выполнить возведение в степень в Java
Самый простой способ решения поставленной задачи — использовать класс Math. Это то решение, которое вы будете использовать в большинстве случаев.
Класс Math содержит методы, связанные с тригонометрией, геометрией и другими аспектами математики. В нём методы реализованы как статические, поэтому можно сразу вызывать через имя класса Math без создания объекта класса.
Как у нас будет выглядеть возведение в степень:
Нам пришлось использовать приведение типа (int), так как данный метод класса Math возвращает значение типа double (аргументы по идее тоже double, но там используется неявное приведение типа).
А теперь — бонус: дополнительные варианты.
Значение квадрата числа
Начнём, пожалуй, с самого простого.
Вот так пишется метод для возведения в квадрат:
Вот и всё — ничего сложного и лишнего.
Но число в квадрате — далеко не все, что нам понадобится. Чаще всего нам в работе будет нужно число именно в определенной степени, поэтому далее следует немного усложненный вариант, но уже с кастомным java pow значением:
Алгоритм весьма прост: мы как бы задаём точку отсчета result, и далее умножаем его на наше значение value столько раз, сколько отработает цикл с powValue (powValue количество раз)
Следующий способ будет немного более экзотическим, но от этого не менее крутым.
Рекурсия — это средство, которое позволяет методу вызывать самого себя. В Java такой механизм присутствует, и такие методы, соответственно, называются рекурсивными.
Многие, если не все алгоритмические задачки, можно решать рекурсивно. Данная тоже не будет исключением, поэтому давайте взглянем, как можно возвести число в определенную степень рекурсивным способом:
Как видим, у нас есть два случая:
Ну а теперь пришло время взглянуть на более ленивые способы, а именно — способы “из коробки”.
Главное назначение класса BigInteger состоит в хранении целых чисел произвольной величины, но при этом в нём есть различные арифметические методы, позволяющие вести работу с этими огромными (ну или не очень) числами.
Подробнее о BigInteger можно почитать вот в этой статье.
Итак, как же будет выглядеть возведение в степень с помощью BigInteger в Java?
Довольно просто и без заморочек, не правда ли?
Ну вот, на сегодня все! Теперь вы знаете о самых разных способах возведения в степень. Согласитесь, это была несложная тема 🙂
Как возводить в степень в Java?
В этой статье мы расскажем о том, как выполнять возведение в степень в языке программирования Java. Читателю будут представлены 5 актуальных способов решения поставленной задачи.
Но прежде чем мы приступим к перечислению способов, давайте для начала вспомним, что же вообще представляет собой операция возведения:
Таким образом, речь идет об умножении числа на свое же значение n-е количество раз. Умножаемое число — это основание степени, а количество операций по умножению — показатель. Результат такого перемножения и будет называться возведением в степень. Для числа 3 3 результат будет равен 27, так как 3 х 3 х 3 = 27.
Теперь давайте рассмотрим, как это все реализуется в языке программирования Java.
Math pow
Использование класса Math — наиболее простой вариант решения поставленной задачи. На практике его применяют в большинстве ситуаций. Public class Math включает в себя математические методы, в том числе те, которые связаны с геометрией и тригонометрией. В этом классе методы реализованы в качестве статических, следовательно, есть возможность вызывать их через имя класса Math, не создавая объект класса.
public static int pow(int value, int powValue) <
return (int) Math.pow(value, powValue);
Теперь рассмотрим несколько дополнительных вариантов решения поставленной задачи.
Значение квадрата числа
Начнем с наиболее простого и напишем метод по возведению в квадрат:
Выполняем вызов в main:
public static void main(String[] args) <
Как видим, возведение в квадрат сложностей не вызывает.
Число в степени
Чаще всего нам приходится работать не с квадратным значением числа, а с числом в определенной степени. Усложним предыдущий вариант и задействуем кастомное Java pow-значение:
public static void main(String[] args) <
public static int pow(int value, int powValue) <
int result = 1;
for (int a = 1; а
result = result * value;
return result;
Рекурсия
Следующий вариант является уже более экзотичным.
Вы должны знать, что рекурсия позволяет методу осуществлять вызов самого себя. В языке программирования Java такие методы тоже есть и называются они рекурсивными.
На практике рекурсивно можно решать многие алгоритмические задачи. Наша — не исключение. Давайте выполним возведение в степень рекурсивно:
Как видно из реализации, существуют 2 момента:
Для совсем ленивых разработчиков существуют способы «из коробки». Рассмотрим один из них.
BigInteger
BigInteger — это класс, который обеспечивает хранение целых чисел произвольной величины. Здесь существуют разные арифметические методы, которые позволяют работать с числами.
Выполняем возведение посредством BigInteger в Java:
Тут все предельно просто и не нуждается в дополнительных разъяснениях, не так ли? Однако на сегодня все, теперь вы будете знать о разных способах, позволяющих возводить в степень в «Джава».
По материалам: https://javarush.ru/groups/posts/2828-kak-vihpolnitjh-vozvedenie-v-stepenjh-v-java.
Интересуют более продвинутые знания по языку программирования Java? Добро пожаловать на курсы в Otus!
Возвести в степень Java (задача на методы в Java)
Данная статья написана командой Vertex Academy. Это одна из статей из нашего «Самоучителя по Java.»
Условие задачи:
Необходимо написать метод, который бы возводил число в степень. И далее два числа, возведенные в степень, должны быть просуммированы, а результат выведен в консоль.
И, таким образом, в консоли мы должны увидеть число 73.
Решение:
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите:
Комментарии к задаче:
Изначально Вам необходимо вывести общую формулу возведения числа в степень.
Мы использовали цикл for. Причем обратите внимание, что в цикле for мы написали i
И, таким образом, в консоли было выведено число 73.
math возведение в степень java
Содержание
Описание
Метод Math.pow() — возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Синтаксис
Параметры
Подробная информация о параметрах:
Возвращаемое значение
Пример 1: возведение числа в квадрат и куб
Для возведения любого числа в квадрат с помощью метода Math.pow() необходимо в качестве второго аргумента использовать значение 2, а для возведения в куб — 3 и т.д. Заметьте, для вывода на экран целого значения используется «%.0f», так как метод возвращает double значение.
Получим следующий результат:
Пример 2: возведение числа в дробную степень
Получим следующий результат:
Пример 3: возведение числа в отрицательную степень
Получим следующий результат:
Пример 4: возведение отрицательного числа степень
Заметьте, что при возведении отрицательного числа в дробную степень мы не получим результат (NaN).
Поиск по форуму |
Расширенный поиск |
К странице. |
|