Skip to content

Math

数学・数値計算関連の標準定数・関数にはMath:の名前空間が付与されています。

定数

型は全てnumです。

定数名説明概算値
Math:Infinity無限大なし
Math:Eネイピア数 e2.718281828459045
Math:LN22の自然対数0.6931471805599453
Math:LN1010の自然対数2.302585092994046
Math:LOG2E2を底とした e の対数1.4426950408889634
Math:LOG10E10を底とした e の対数0.4342944819032518
Math:PI円周率 π3.141592653589793
Math:SQRT1_2120.7071067811865476
Math:SQRT221.4142135623730951

基本的な関数

@Math:abs(x: num): num

絶対値を計算します。 |x|

@Math:sign(x: num): num

x が正であれば1、負であれば-1、0または-0であればそのままの値を返します。
いずれでもなければNaNを返します。

@Math:round(x: num): num

四捨五入して、もっとも近い整数を返します。

@Math:ceil(x: num): num

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

@Math:floor(x: num): num

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

@Math:trunc(x: num): num

引数の小数部を切り捨て、整数部を返します。 [x]

@Math:min(a: num, b: num): num

小さい方の値を取得します。

@Math:max(a: num, b: num): num

大きい方の値を取得します。

@Math:sqrt(x: num): num

正の平方根を計算します。 x

@Math:cbrt(x: num): num

立方根を計算します。 x3

@Math:hypot(vs: arr): num

vs の要素をそれぞれ自乗してから合計した値の正の平方根を返します。 v12+v22++vn2

三角関数

角度の単位はラジアンです。

@Math:sin(rad: num): num

正弦を計算します。

@Math:cos(rad: num): num

余弦を計算します。

@Math:tan(rad: num): num

正接を計算します。

@Math:asin(x: num): num

逆正弦を計算します。

@Math:acos(x: num): num

逆余弦を計算します。

@Math:atan(x: num): num

逆正接を計算します。

@Math:atan2(y: num, x: num): num

yx の正接を返しますが、 x が負値の場合は π だけずれた値を返します。

双曲線関数

@Math:sinh(x: num): num

双曲線正弦を計算します。

@Math:cosh(x: num): num

双曲線余弦を計算します。

@Math:tanh(x: num): num

双曲線正接を計算します。

@Math:asinh(x: num): num

双曲線逆正弦を計算します。

@Math:acosh(x: num): num

双曲線逆余弦を計算します。

@Math:atanh(x: num): num

双曲線逆正接を計算します。

指数・対数関数

@Math:pow(x: num, y: num): num

xy 乗を計算します。内部的にJavascriptの**演算子ではなくMath.pow関数を用いている点を除き、ほぼCore:powと同じものです。

@Math:exp(x: num): num

ex 乗を計算します。

@Math:expm1(x: num): num

ex 乗から1を引いた値を計算します。

@Math:log(x: num): num

自然対数を計算します。常用対数にはMath:log10を使用して下さい。

@Math:log1p(x: num): num

x + 1の自然対数を計算します。

@Math:log10(x: num): num

10を底とした対数を計算します。

@Math:log2(x: num): num

2を底とした対数を計算します。

乱数

@Math:rnd(min?: num, max?: num): num

乱数を生成します。
min および max を渡した場合、min <= x, x <= max の整数、
渡していない場合は 0 <= x, x < 1 の 小数が返されます。

@Math:gen_rng(seed: num | str, options?: obj): @(min?: num, max?: num)

シードから乱数生成機を生成します。
生成された乱数生成器は、min および max を渡した場合、min <= x, x <= max の整数、
渡していない場合は 0 <= x, x < 1 の浮動小数点数を返します。
options に渡したオブジェクトを通じて、内部の挙動を指定できます。
options.algorithmの指定による挙動の変化は下記の通りです。

options.algorithm内部の乱数生成アルゴリズム範囲指定整数生成アルゴリズム
rc4RC4Rejection Sampling
rc4_legacyRC4浮動小数点数演算による範囲制限​(0.19.0以前のアルゴリズム)
無指定 または 'chacha20'ChaCha20Rejection Sampling
aiscript
let rng = Math:gen_rng('AICHAN')

// シード値を固定しているので、同じ条件下では毎回同じ生成パターンになる
<: rng(0, 10)
<: rng(0, 10)
<: rng(0, 10)

注意

rc4_legacy等、浮動小数点数演算を伴う範囲指定整数生成アルゴリズムでは、演算時の丸め誤差により、指定した max の値より大きな値が生成される可能性があります。

その他

@Math:clz32(x: num): num

xを32ビットのバイナリで表現したときの先頭の0の個数を返します。

@Math:fround(x: num): num

x を32ビットの浮動小数点数に変換した時の値を返します。

@Math:imul(x: num, y: num): num

xy に対しC言語風の32ビット乗算を行った結果を返します。