Показатель степени числа А — это число обозначающее, сколько раз число А должно быть умножено само на себя. Логарифм числа b с основанием N — показатель степени, в которую надо возвести основание N, чтобы получить число b.
Возведение в степень.
В Unity (C#) для возведения в степень есть функция:Mathf.Pow(float n, float p) //Возведение в степень
Данная функция возвращает значение n в степени p.
Возводить в степень может понадобиться в разных ситуациях. Например при нахождение площади или объёма.
Но с точки зрения производительности, данная функция не всегда хороший вариант.
Я сравнил три способа возведения в степень:
- С помощью цикла for.
- “Вручную” - простым умножением n раз.
- С помощью функции Mathf.Pow
Результаты (секунд на 1000000 операций):
(Строка - способ, столбец - степень)
Вторая | Третья | Четвёртая | Десятая | Сотая | |
Цикл | 0.01 | 0.013 | 0.015 | 0.05 | 0.5 |
"Вручную" | 0.007 | 0.007 | 0.008 | 0.016 | 0.16 |
Mathf.Pow | 0.085 | 0.085 | 0.085 | 0.086 | 0.086 |
Как видно из таблицы для маленьких степеней считать «вручную» выгоднее, чем с помощью функции Pow.
Выводы:
- “Ручной” способ выгоден при степенях меньше пятидесятой.
- При изменяющейся степени (но меньше 20), выгоднее использовать цикл.
- Mathf.Pow выгодно использовать для случаев не попадающих в первые два вывода, а также в случае дробного показателя степени (примерно в 1.5 раза быстрее, чем «вручную». Но при показателе степени равном 0.5 выгоднее использовать Mathf.Sqrt
В каких случаях каким способом возводить в степень решать только вам.
Для возведения в степень экспоненты в Unity (C#) есть отдельная функция:
Mathf.Exp(float p) //Возведение экспоненты в степень
Логарифмы
Вычисление логарифма в Unity (C#) производиться через функцию:Mathf.Log(float f, float b) //Логарифм
Например
Mathf.Log(25, 5);
Вернёт 2.
Для получения натурального логарифма (основание - экспонента) в Unity (C#) достаточно не указывать основание:
Mathf.Log(float f) //Натуральный логарифм
Для логарифма с основанием 10 есть отдельная функция:
Mathf.Log10(float f) //Логарифм с основанием 10
Важно помнить:
- Логарифма нуля не существует
- Логарифм любого числа (кроме 1) с основанием 1 равен бесконечности.
Конец.
P.S. Если что-то не понятно, пишите в комментариях.