0Pricing
Lua Academy · Урок

Функции библиотеки 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.0

math.sqrt и math.abs

math.sqrt(x) возвращает квадратный корень, а math.abs(x) — абсолютное значение.

print(math.sqrt(144))  -- 12.0
print(math.abs(-42))   -- 42

math.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.0

math.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})))  -- 2

math.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.75

math.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) -- 9223372036854775807

math.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 — локальная установка не требуется.

Все уроки этого курса

  1. Функции библиотеки math
  2. Функции библиотеки table
  3. Библиотеки os и io
  4. Библиотека debug
← Назад к Lua Academy