Математическая библиотека Lua
Lua представляет собой скриптовый язык программирования. Он удобный, легкий и быстрый. Основная цель его создание – язык программирование баз данных. Поэтому все программирование на Lua сводится к разным манипуляциям с таблицами.
Таблицы – это набор структурированных данных, где каждому ключу отвечает значение. Легкость встраивания и простой синтаксис Lua в приложении обеспечили широкое распространение в разных сферах. Например, часто требуются математические операции в инженерных и научных расчетах, где и пригодится стандартная библиотека Lua.
Функции в математической библиотеке
Имя функции | Описание функции |
math.abs (x) | Возвращает абсолютное значение х. |
math.cos (x) | Возвращает косинус x (предполагается в радианах).Возвращает арккосинус от x (в радианах). |
math.asin (x) | Возвращает арксинус x (в радианах). |
математика (х) | Возвращает арктангенс х (в радианах). |
math.atan2 (у, х)
| Возвращает арктангенс y / x (в радианах), но применяет знаки обоих параметров, дабы найти квадрант результата. (также он правильно обрабатывает случай, когда х равен нулю.) |
math.huge | Значение HUGE_VAL, значение равно или больше любому другому числовому значению. |
math.acos (x) | Возвращает арккосинус от x (в радианах). |
math.cosh (x) | Возвращает гиперболический косинус x. |
math.deg (x) | Возвращает угол x (в радианах) в градусах. |
math.exp (x) | Возвращает значение e power x. |
math.floor (x) | Возвращает наибольшее целое число, равное или меньшее x. |
math.fmod (x, y) | Возвращает остаток от деления x на y, которое округляет частное к нулю. |
math.pow (x, y)
| Возвращает ху. (Вы также можете использовать выражение x ^ y для вычисления этого значения.) |
math.ceil (x) | Возвращает наименьшее целое число, равное или больше x. |
math.ldexp (м, е) | Возвращает m2e (e должно быть целым числом). |
math.log (x) | Возвращает натуральный логарифм x. |
math.log10 (x) | Возвращает основание-10 логарифм х. |
math.max (x, …) | Возвращает максимальное значение среди своих аргументов. |
math.min (x, …) | Возвращает минимальное значение среди своих аргументов. |
math.modf (x) | Возвращает два числа, неотъемлемую часть x и дробную часть x. |
math.pi | Значение пи. |
math.frexp (x) | Возвращает m и e, такие что x = m2e, e — целое число, а абсолютное значение m находится в диапазоне [0,5, 1) (или ноль, когда x равен нулю). |
math.rad (x) | Возвращает угол x (в градусах) в радианах. |
math.random ([m [, n]])
| Данная функция выступает интерфейсом к простой функции генератора псевдослучайных рандов, предоставляемой ANSI C. При вызове без аргументов возвращает равномерное псевдослучайное действительное число в диапазоне [0,1). При вызове с целым числом m, math.random возвращает равномерное псевдослучайное целое число в диапазоне [1, m]. При вызове с двумя целыми числами m и n math.random возвращает равномерное псевдослучайное целое число в диапазоне [m, n]. |
математика. случайное семя (х)
| Устанавливает x в качестве «начального числа» для псевдослучайного генератора: равные начальные числа создают равные последовательности чисел. |
математика (х) | Возвращает синус х (предполагается в радианах). |
math.sinh (x) | Возвращает гиперболический синус x. |
math.sqrt (x)
| Возвращает квадратный корень из х. (Для вычисления данного значения, можно использовать выражение x ^ 0.5) |
математика (х) | Возвращает тангенс x (предполагается в радианах). |
математика (х) | Возвращает гиперболический тангенс x. |
Тригонометрические функции
Пример использования тригонометрической функции:
radianVal = math.rad(math.pi /2)
io.write(radianVal,»\n»)
—Sin value of 90(math.pi /2) degrees
io.write(string.format(«%.1f «, math.sin(radianVal)),»\n»)—Cos value of 90(math.pi /2) degrees
io.write(string.format(«%.1f «, math.cos(radianVal)),»\n»)—Tan value of 90(math.pi /2) degrees
io.write(string.format(«%.1f «, math.tan(radianVal)),»\n»)—Cosh value of 90(math.pi /2) degrees
io.write(string.format(«%.1f «, math.cosh(radianVal)),»\n»)—PiValuein degrees
io.write(math.deg(math.pi),»\n»)
При выполнении программы, получится следующее:
0.027415567780804
0.0
1.0
0.0
1.0
180
Другие общие математические функции
Пример использования общих математических функций:
—Floor
io.write(«Floor of 10.5055 is «, math.floor(10.5055),»\n»)—Ceil
io.write(«Ceil of 10.5055 is «, math.ceil(10.5055),»\n»)—Square root
io.write(«Square root of 16 is «,math.sqrt(16),»\n»)—Power
io.write(«10 power 2 is «,math.pow(10,2),»\n»)
io.write(«100 power 0.5 is «,math.pow(100,0.5),»\n»)—Absolute
io.write(«Absolute value of -10 is «,math.abs(-10),»\n»)—Random
math.randomseed(os.time())
io.write(«Random number between 1 and 100 is «,math.random(),»\n»)—Random between 1 to 100
io.write(«Random number between 1 and 100 is «,math.random(1,100),»\n»)—Max
io.write(«Maximum in the input array is «,math.max(1,100,101,99,999),»\n»)—Min
io.write(«Minimum in the input array is «,math.min(1,100,101,99,999),»\n»)
При выполнении программы, получится следующий вывод:
Floor of 10.5055 is 10
Ceil of 10.5055 is 11
Square root of 16 is 4
10 power 2 is 100
100 power 0.5 is 10
Absolute value of -10 is 10
Random number between 1 and 100 is 0.22876674703207
Random number between 1 and 100 is 7
Maximum in the input array is 999
Minimum in the input array is 1
Это всего лишь несколько примеров из множества. Математическую библиотеку можно использовать для самых разных целей, поэтому рекомендуем выучить эти функции, чтобы понимать где их можно применять.