Lua - Matematik kütüphanesi
Bilimsel ve mühendislik hesaplamalarında sık sık matematik işlemlerine ihtiyacımız var ve bunu standart Lua kütüphanesi matematiğini kullanarak yapabiliriz. Matematik kitaplığında bulunan işlevlerin listesi aşağıdaki tabloda gösterilmektedir.
Sr.No. | Kütüphane / Yöntem ve Amaç |
---|---|
1 | math.abs (x) X'in mutlak değerini döndürür. |
2 | math.acos (x) X'in ark kosinüsünü (radyan cinsinden) verir. |
3 | math.asin (x) X'in yay sinüsünü (radyan cinsinden) verir. |
4 | math.atan (x) X'in yay tanjantını (radyan cinsinden) verir. |
5 | math.atan2 (y, x) Y / x'in yay tanjantını (radyan cinsinden) verir, ancak sonucun çeyreğini bulmak için her iki parametrenin işaretlerini kullanır. (Ayrıca x'in sıfır olması durumunu da doğru bir şekilde ele alır.) |
6 | math.ceil (x) X'e eşit veya daha büyük olan en küçük tamsayıyı döndürür. |
7 | math.cos (x) X'in kosinüsünü verir (radyan cinsinden olduğu varsayılır). |
8 | math.cosh (x) X'in hiperbolik kosinüsünü döndürür. |
9 | math.deg (x) X açısını (radyan cinsinden verilir) derece cinsinden verir. |
10 | math.exp (x) E üssü x değerini döndürür. |
11 | math.floor (x) X'ten küçük veya x'e eşit en büyük tamsayıyı döndürür. |
12 | math.fmod (x, y) X'in y'ye bölünmesinin kalan kısmını döndürür ve bölümü sıfıra yuvarlar. |
13 | math.frexp (x) X = m2e, e bir tam sayı ve m'nin mutlak değeri [0,5, 1) aralığında (veya x sıfır olduğunda sıfır) olacak şekilde m ve e'yi döndürür. |
14 | math.huge HUGE_VAL değeri, diğer herhangi bir sayısal değerden büyük veya ona eşit bir değer. |
15 | math.ldexp (m, e) M2e döndürür (e bir tam sayı olmalıdır). |
16 | math.log (x) X'in doğal logaritmasını döndürür. |
17 | math.log10 (x) X'in 10 tabanlı logaritmasını döndürür. |
18 | math.max (x, ...) Bağımsız değişkenleri arasında maksimum değeri döndürür. |
19 | math.min (x, ...) Bağımsız değişkenleri arasında minimum değeri döndürür. |
20 | math.modf (x) İki sayıyı döndürür: x'in tamsayı kısmı ve x'in kesirli kısmı. |
21 | math.pi Pi'nin değeri. |
22 | math.pow (x, y) Xy döndürür. (Bu değeri hesaplamak için x ^ y ifadesini de kullanabilirsiniz.) |
23 | math.rad (x) Radyan cinsinden x açısını (derece cinsinden verilir) verir. |
24 | math.random ([m [, n]]) Bu işlev, ANSI C tarafından sağlanan basit sözde rasgele üretici işlevi rand arabirimidir. Bağımsız değişkenler olmadan çağrıldığında, [0,1) aralığında tek tip sözde rasgele gerçek sayı döndürür. Math.random, m tamsayısıyla çağrıldığında, [1, m] aralığında tek tip bir sözde rastgele tamsayı döndürür. İki tam sayı m ve n ile çağrıldığında, math.random [m, n] aralığında tekdüze bir sözde rastgele tamsayı döndürür. |
25 | math.randomseed (x) X'i sözde rasgele oluşturucu için "çekirdek" olarak ayarlar: eşit tohumlar eşit sayı dizileri üretir. |
26 | math.sin (x) X'in sinüsünü verir (radyan cinsinden olduğu varsayılır). |
27 | math.sinh (x) X'in hiperbolik sinüsünü döndürür. |
28 | math.sqrt (x) X'in karekökünü verir. (Bu değeri hesaplamak için x ^ 0.5 ifadesini de kullanabilirsiniz.) |
29 | math.tan (x) X'in tanjantını verir (radyan cinsinden olduğu varsayılır). |
30 | math.tanh (x) X'in hiperbolik tanjantını döndürür. |
Trigonometrik fonksiyonlar
Trigonometrik fonksiyonun kullanıldığı basit bir örnek aşağıda gösterilmiştir.
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")
Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.
0.027415567780804
0.0
1.0
0.0
1.0
180
Diğer yaygın matematik fonksiyonları
Yaygın matematik işlevlerini kullanan basit bir örnek aşağıda gösterilmiştir.
-- 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")
Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alacağız.
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
Yukarıdaki örnekler yaygın örneklerden sadece birkaçıdır, ihtiyacımıza göre matematik kitaplığını kullanabiliriz, bu nedenle daha aşina olmak için tüm işlevleri kullanmayı deneyin.