初版是為 Lua 5.0 編寫的。雖然對於後續版本而言,大部分內容仍然相關,但有些地方有所不同。
第四版針對 Lua 5.3,可在 Amazon 和其他書店購買。
購買這本書,您也可以協助 支持 Lua 專案。
![]() |
用 Lua 程式設計 | ![]() |
第三部分。標準函式庫 第 18 章。數學函式庫 |
在本章(以及其他關於標準函式庫的章節)中,我的目標不是提供每個函式的完整規格,而是向您展示函式庫可以提供的功能類型。為了清楚說明,我可能會省略一些細微的選項或行為。主要目的是激發您的好奇心,然後您可以透過參考手冊來滿足好奇心。
math
函式庫包含一組標準數學函式,例如三角函式(sin
、cos
、tan
、asin
、acos
等)、指數和對數(exp
、log
、log10
)、捨入函式(floor
、ceil
)、max
、min
,以及變數 pi
。數學函式庫也定義運算子 `^
´,用作指數運算子。
所有三角函式都以弧度為單位運算。(在 Lua 4.0 之前,它們以角度為單位運算。)您可以使用函式 deg
和 rad
在角度和弧度之間進行轉換。如果您想以角度為單位運算,您可以重新定義三角函式
local sin, asin, ... = math.sin, math.asin, ... local deg, rad = math.deg, math.rad math.sin = function (x) return sin(rad(x)) end math.asin = function (x) return deg(asin(x)) end ...
math.random
函式會產生偽亂數。我們可以用三種方式呼叫它。當我們在沒有參數的情況下呼叫它時,它會傳回一個均勻分佈在區間 [0,1) 中的偽亂數實數。當我們只使用一個參數(整數 n)呼叫它時,它會傳回一個整數偽亂數 x,其中 1 <= x <= n。例如,您可以使用 random(6)
來模擬骰子的結果。最後,我們可以使用兩個整數參數(l 和 u)呼叫 random
,以取得一個偽亂數整數 x,其中 l <= x <= u。
您可以使用 randomseed
函式設定偽亂數產生器的種子;其唯一的數字參數是種子。通常,當程式啟動時,它會使用固定的種子初始化產生器。這表示每次執行程式時,它都會產生相同的偽亂數序列。對於除錯而言,這是一個不錯的特性;但在遊戲中,您會不斷遇到相同的場景。解決此問題的常見技巧是使用目前時間作為種子
math.randomseed(os.time())(
os.time
函數會傳回一個數字,表示目前時間,通常是自某個紀元以來經過的秒數。)
版權所有 © 2003–2004 Roberto Ierusalimschy。保留所有權利。 | ![]() |