Biblioteca Matematică în Lua: math.random, math.floor, math.huge și Constante Numerice în Lua

Ghid complet pentru modulul math în Lua 5.4: generare de numere aleatorii, rotunjiri, trigonometrie, constantele math.huge și math.pi, și verificarea tipului numeric cu math.type.

Sintaxă
math.random(1, 100); math.floor(x); math.type(val); math.huge

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.