このページの内容

6.8 – 数学関数

このライブラリは基本的な数学関数を提供します。すべての関数と定数はテーブルmath内にあります。“integer/float”という注記がある関数は、整数の引数に対して整数の結果を、整数でない引数に対して浮動小数点数の結果を返します。丸め関数math.ceilmath.floormath.modfは、結果が整数の範囲に収まる場合は整数を、それ以外の場合は浮動小数点数を返します。


math.abs (x)

x-xのうち大きい値を返します。(integer/float)


math.acos (x)

xの逆余弦をラジアンで返します。


math.asin (x)

xの逆正弦をラジアンで返します。


math.atan (y [, x])

両方の引数の符号を使って結果の象限を求め、y/xの逆正接をラジアンで返します。xが0の場合も正しく処理します。

xのデフォルト値は1なので、呼び出しmath.atan(y)yの逆正接を返します。


math.ceil (x)

x以上の最小の整数値を返します。


math.cos (x)

x(ラジアンと仮定)の余弦を返します。


math.deg (x)

角度xをラジアンから度へ変換します。


math.exp (x)

exeは自然対数の底)を返します。


math.floor (x)

x以下の最大の整数値を返します。


math.fmod (x, y)

商を0の方向へ丸める、xyで除算した余りを返します。(integer/float)


math.frexp (x)

*x = m2eを満たす2つの数meを返します。eは整数です。xが0、NaN、+inf、または-infの場合、mxと等しくなります。それ以外の場合、mの絶対値は範囲[0.5, 1)*に入ります。


math.huge

ほかのどの数値よりも大きい浮動小数点値HUGE_VALです。


math.ldexp (m, e)

*m2e*を返します。eは整数です。


math.log (x [, base])

指定された底におけるxの対数を返します。baseのデフォルトはeです(したがって、関数はxの自然対数を返します)。


math.max (x, ···)

Lua演算子<に従い、最大値を持つ引数を返します。


math.maxinteger

整数の最大値を持つ整数です。


math.min (x, ···)

Lua演算子<に従い、最小値を持つ引数を返します。


math.mininteger

整数の最小値を持つ整数です。


math.modf (x)

xの整数部分とxの小数部分を返します。2番目の結果は常に浮動小数点数です。


math.pi

πの値です。


math.rad (x)

角度xを度からラジアンへ変換します。


math.random ([m [, n]])

引数なしで呼び出すと、範囲*[0, 1)の一様分布に従う疑似乱数の浮動小数点数を返します。2つの整数mnを指定して呼び出すと、math.randomは範囲[m, n]*の一様分布に従う疑似乱数の整数を返します。正のnに対する呼び出しmath.random(n)は、math.random(1,n)と等価です。呼び出しmath.random(0)は、すべてのビットが(疑似)ランダムな整数を生成します。

この関数はxoshiro256**アルゴリズムを使って疑似乱数の64ビット整数を生成します。これは引数0で呼び出した結果です。そのほかの結果(範囲と浮動小数点数)は、これらの整数から偏りなく抽出されます。

Luaは引数なしのmath.randomseed呼び出しと等価な方法で疑似乱数生成器を初期化します。そのため、math.randomはプログラムを実行するたびに異なる結果の列を生成するはずです。


math.randomseed ([x [, y]])

少なくとも1つの引数を指定して呼び出すと、整数の引数xyが、疑似乱数生成器を再初期化するためのシードへ結合されます。同じシードは同じ数列を生成します。yのデフォルトは0です。

引数なしで呼び出すと、Luaは弱いランダム性の試みによってシードを生成します。

この関数は実際に使われた2つのシード成分を返すため、それらを再度設定すれば数列を再現できます。

初期状態に必要なランダム性の水準を確保するため(または反対に、プログラムのデバッグ時などに決定的な数列を得るため)、明示的な引数を指定してmath.randomseedを呼び出す必要があります。


math.sin (x)

x(ラジアンと仮定)の正弦を返します。


math.sqrt (x)

xの平方根を返します。(式x^0.5を使ってこの値を計算することもできます。)


math.tan (x)

x(ラジアンと仮定)の正接を返します。


math.tointeger (x)

xを整数へ変換できる場合は、その整数を返します。それ以外の場合はfailを返します。


math.type (x)

xが整数なら”integer”、浮動小数点数なら”float”を返し、xが数値でなければfailを返します。


math.ult (m, n)

整数mと整数nを符号なし整数として比較したとき、mnより小さい場合に限り、ブール値trueを返します。