Lua - Thư viện toán học
Chúng ta thường cần các phép toán trong tính toán khoa học và kỹ thuật và chúng ta có thể tận dụng điều này bằng cách sử dụng toán học thư viện Lua tiêu chuẩn. Danh sách các hàm có sẵn trong thư viện toán học được hiển thị trong bảng sau.
Sr.No. | Thư viện / Phương pháp & Mục đích |
---|---|
1 | math.abs (x) Trả về giá trị tuyệt đối của x. |
2 | math.acos (x) Trả về cosin cung của x (tính bằng radian). |
3 | math.asin (x) Trả về cung sin của x (tính bằng radian). |
4 | math.atan (x) Trả về tiếp tuyến cung của x (tính bằng radian). |
5 | math.atan2 (y, x) Trả về tiếp tuyến cung của y / x (tính bằng radian), nhưng sử dụng dấu hiệu của cả hai tham số để tìm góc phần tư của kết quả. (Nó cũng xử lý chính xác trường hợp x bằng không.) |
6 | math.ceil (x) Trả về số nguyên nhỏ nhất lớn hơn hoặc bằng x. |
7 | math.cos (x) Trả về cosine của x (giả sử là radian). |
số 8 | math.cosh (x) Trả về cosin hyperbol của x. |
9 | math.deg (x) Trả về góc x (tính bằng radian) theo độ. |
10 | math.exp (x) Trả về giá trị e lũy thừa x. |
11 | math.floor (x) Trả về số nguyên lớn nhất nhỏ hơn hoặc bằng x. |
12 | math.fmod (x, y) Trả về phần còn lại của phép chia x cho y làm tròn thương số về 0. |
13 | math.frexp (x) Trả về m và e sao cho x = m2e, e là số nguyên và giá trị tuyệt đối của m nằm trong khoảng [0,5, 1) (hoặc 0 khi x bằng 0). |
14 | math.huge Giá trị HUGE_VAL, một giá trị lớn hơn hoặc bằng bất kỳ giá trị số nào khác. |
15 | math.ldexp (m, e) Trả về m2e (e phải là một số nguyên). |
16 | math.log (x) Trả về lôgarit tự nhiên của x. |
17 | math.log10 (x) Trả về logarit cơ số 10 của x. |
18 | math.max (x, ...) Trả về giá trị lớn nhất trong số các đối số của nó. |
19 | math.min (x, ...) Trả về giá trị nhỏ nhất trong số các đối số của nó. |
20 | math.modf (x) Trả về hai số, phần nguyên của x và phần thập phân của x. |
21 | math.pi Giá trị của số pi. |
22 | math.pow (x, y) Trả về xy. (Bạn cũng có thể sử dụng biểu thức x ^ y để tính giá trị này.) |
23 | math.rad (x) Trả về góc x (tính bằng độ) tính bằng radian. |
24 | math.random ([m [, n]]) Hàm này là một giao diện với hàm tạo ngẫu nhiên giả đơn giản do ANSI C. cung cấp. Khi được gọi mà không có đối số, sẽ trả về một số thực giả ngẫu nhiên thống nhất trong phạm vi [0,1). Khi được gọi với một số nguyên m, math.random trả về một số nguyên giả ngẫu nhiên thống nhất trong phạm vi [1, m]. Khi được gọi với hai số nguyên m và n, math.random trả về một số nguyên giả ngẫu nhiên thống nhất trong phạm vi [m, n]. |
25 | math.randomseed (x) Đặt x làm "hạt giống" cho trình tạo giả ngẫu nhiên: các hạt giống nhau tạo ra các chuỗi số bằng nhau. |
26 | math.sin (x) Trả về sin của x (giả sử là radian). |
27 | math.sinh (x) Trả về sin hyperbol của x. |
28 | math.sqrt (x) Trả về căn bậc hai của x. (Bạn cũng có thể sử dụng biểu thức x ^ 0,5 để tính giá trị này.) |
29 | math.tan (x) Trả về tang của x (giả sử là radian). |
30 | math.tanh (x) Trả về tiếp tuyến hyperbol của x. |
Hàm lượng giác
Dưới đây là một ví dụ đơn giản sử dụng hàm lượng giác.
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")
-- Pi Value in degrees
io.write(math.deg(math.pi),"\n")
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
0.027415567780804
0.0
1.0
0.0
1.0
180
Các hàm toán học thông thường khác
Dưới đây là một ví dụ đơn giản sử dụng các hàm toán học phổ biến.
-- 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")
Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được kết quả sau.
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
Các ví dụ trên chỉ là một số ví dụ phổ biến, chúng ta có thể sử dụng thư viện toán học dựa trên nhu cầu của mình, vì vậy hãy thử sử dụng tất cả các hàm để quen thuộc hơn.