Функции библиотеки math
Используйте math.floor, ceil, sqrt, sin, cos, random, huge и pi.
«Функции библиотеки math» — бесплатный урок Lua Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Lua Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Lua Academy содержит 4 уроков всего.
Модуль math
Модуль math предоставляет математические константы и функции: math.pi, math.huge, math.maxinteger и десятки других функций.
Функции округления
math.floor округляет вниз, math.ceil — вверх, а math.tointeger преобразует число с плавающей точкой в целое или возвращает nil.
print(math.floor(3.7)) -- 3
print(math.ceil(3.2)) -- 4
print(math.tointeger(4.0)) -- 4Тригонометрия
Функции принимают радианы. Используйте math.pi для преобразования градусов в радианы.
local deg = 45
local rad = deg * math.pi / 180
print(math.sin(rad)) -- ~0.707
print(math.cos(rad)) -- ~0.707
print(math.tan(rad)) -- ~1.0math.sqrt и math.abs
math.sqrt(x) возвращает квадратный корень, а math.abs(x) — абсолютное значение.
print(math.sqrt(144)) -- 12.0
print(math.abs(-42)) -- 42math.exp и math.log
Функции вычисления экспоненты и логарифма. math.log принимает необязательный аргумент основания.
print(math.exp(1)) -- 2.718...
print(math.log(math.exp(1))) -- 1.0
print(math.log(100, 10)) -- 2.0math.min и math.max
Возвращают минимальное или максимальное значение из списка чисел. Принимают несколько аргументов.
print(math.min(3, 1, 4, 1, 5)) -- 1
print(math.max(3, 1, 4, 1, 5)) -- 5
print(math.min(table.unpack({7,2,9}))) -- 2math.random и math.randomseed
Генерируют псевдослучайные числа. Инициализируйте генератор с помощью os.time(), чтобы получать неповторяющиеся последовательности.
math.randomseed(os.time())
print(math.random()) -- float in [0,1)
print(math.random(6)) -- integer in [1,6]
print(math.random(10, 20)) -- integer in [10,20]math.modf
math.modf(x) возвращает целую и дробную части x в виде двух отдельных значений.
local int, frac = math.modf(3.75)
print(int, frac) -- 3.0 0.75math.huge и бесконечность
math.huge — это положительная бесконечность. Она полезна как начальное значение в циклах поиска минимума.
local min = math.huge
for _, v in ipairs({5, 2, 8, 1}) do
if v < min then min = v end
end
print(min) -- 1Целочисленная арифметика (Lua 5.3+)
В Lua 5.3 появились настоящие целые числа. Используйте math.type(x), чтобы отличить целое число от числа с плавающей точкой.
print(math.type(1)) -- integer
print(math.type(1.0)) -- float
print(math.maxinteger) -- 9223372036854775807math.fmod
math.fmod(x, y) возвращает остаток от деления x/y с тем же знаком, что и x, в отличие от оператора %.
print(math.fmod(-7, 3)) -- -1
print(-7 % 3) -- 2 (always non-negative in Lua)Вопрос о библиотеке math
Какая функция возвращает целую и дробную части числа?
Итоги: библиотека math
Библиотека math охватывает округление, тригонометрию, экспоненциальные функции, случайные числа, поиск минимума и максимума, а также целочисленную арифметику. Для реалистичной случайности всегда инициализируйте math.random с помощью os.time().
Часто задаваемые вопросы
Урок «Функции библиотеки math» бесплатный?
Да — полный текст урока «Функции библиотеки math» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Lua Academy, подпишись на CoddyKit PRO. Курс Lua Academy содержит 4 уроков всего.
Чему я научусь в уроке «Функции библиотеки math»?
Используйте math.floor, ceil, sqrt, sin, cos, random, huge и pi. Ты практикуешь Lua Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Lua Academy?
Предыдущий опыт не требуется. Lua Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Функции библиотеки math»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Lua Academy?
Да. Каждый урок Lua Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Функции библиотеки math
- Функции библиотеки table
- Библиотеки os и io
- Библиотека debug