Biblioteca standard math din Lua oferă funcții matematice avansate, operații pe numere întregi și reale conform standardului IEEE 754, constante fundamentale și funcții de generare a numerelor pseudo-aleatorii.
Operații matematice de bază, rotunjiri și constante
-- Constante universale:
print("Valoarea lui Pi:", math.pi) -- 3.1415926535898
print("Infinit pozitiv:", math.huge) -- inf
print("Cel mai mare întreg 64-bit:", math.maxinteger)
print("Cel mai mic întreg 64-bit:", math.mininteger)
-- Rotunjiri și trunchieri:
local numar = 7.68
print("math.floor (rotunjire în jos):", math.floor(numar)) -- 7
print("math.ceil (rotunjire în sus):", math.ceil(numar)) -- 8
-- Verificarea subtipului numeric (intreg vs real în Lua 5.3+):
print(math.type(42)) -- "integer"
print(math.type(42.0)) -- "float"
print(math.type("42")) -- nil (șirurile nu sunt numere)
-- Valori extreme și absolute:
print("Maxim:", math.max(12, 99, 45, 103, 8)) -- 103
print("Minim:", math.min(12, 99, 45, 103, 8)) -- 8
print("Valoare absolută:", math.abs(-125.5)) -- 125.5
Generarea numerelor pseudo-aleatorii cu math.random
-- În Lua 5.4, generatorul folosește algoritmul xoshiro256**
-- math.randomseed() fără parametri inițializează seed-ul pe baza timpului de sistem:
math.randomseed()
-- Generarea unui număr real în intervalul [0, 1):
local factor = math.random()
print("Factor aleator:", factor)
-- Generarea unui număr întreg între 1 și 100 inclusiv:
local zar100 = math.random(100)
print("Aruncare zar procentual (1-100):", zar100)
-- Generarea unui număr întreg între limite specifice [min, max]:
local temperatura = math.random(-15, 38)
print("Temperatură simulată:", temperatura)
| Funcție / Constantă | Semnătură / Valoare | Descriere operație |
|---|---|---|
math.randomseed(x, y) |
math.randomseed([x, y]) |
Setează seed-ul generatorului aleator (în Lua 5.4 acceptă 2 argumente pe 64 de biți). |
math.fmod(x, y) |
math.fmod(x, y) -> float |
Restul împărțirii reale cu virgulă mobilă. |
math.sqrt(x) |
math.sqrt(x) -> float |
Rădăcina pătrată a unui număr pozitiv. |
math.tointeger(x) |
math.tointeger(x) -> int|nil |
Convertește o valoare la întreg exact sau întoarce nil dacă nu e posibilă conversia. |