組み込み関数リファレンス
このページでは、Varlig Calcに組み込まれているすべての関数を紹介します。関数は名前に続けて、カンマで区切った引数を丸かっこで囲んで呼び出します(sqrt(16)、round(17.46, 0.05))。
- 名前の大文字と小文字は区別されないので、
SQRT(16)でも動作します。 - 引数の数はチェックされます。
sqrt(4, 9)は9を無視せず、エラーを表示します。 - 数値は桁区切りを付けたまま書けます。カンマの後に3桁の数字が続けば桁区切り、カンマの後にスペースがあれば引数の区切りになるので、
max(1,000, 2,000)は2,000、sqrt(1,024)は32です。 - 関数の答えは、同じ行で丸めたり換算したりできます(
sqrt(2) to 4 dp、abs(-5 km) in mなど)。 - 下の表で名前を探し、該当するセクションで詳しい説明と例を確認してください。
多くの関数には、square root of 16 のような英語のフレーズもあります。言葉で数学を参照してください。関数を自分で作るには、自分で作る関数を参照してください。
すべての関数
| 関数 | 意味 |
|---|---|
abs(x) |
絶対値。単位はそのまま。複素数では大きさ |
sign(x) |
−1、0、1のいずれか |
int(x), trunc(x) |
整数部分(0の方向へ切り捨て) |
round(x), round(x, step) |
最も近い整数、または最も近い step の倍数 |
floor(x), floor(x, step) |
切り下げ(負の無限大の方向へ) |
ceil(x), ceil(x, step) |
切り上げ(正の無限大の方向へ) |
sqrt(x), cbrt(x) |
平方根と立方根。単位の指数が割り切れれば単位も残ります |
exp(x), ln(x) |
自然指数関数と自然対数 |
log(x), log10(x), log2(x), logbase(x, b) |
対数 |
sin, cos, tan |
三角関数(ラジアン、または 30° のような角度) |
sind, cosd, tand |
三角関数(度) |
asin, acos, atan |
逆三角関数(結果はラジアン) |
asind, acosd, atand |
逆三角関数(結果は度) |
atan2(y, x) |
象限を考慮した角度(ラジアン) |
sinh, cosh, tanh, asinh, acosh, atanh |
双曲線関数 |
factorial(n), fact(n) |
階乗。n! とも書けます |
gcd(a, b), lcm(a, b) |
最大公約数と最小公倍数。分数でも正確に計算 |
combination(n, k), permutation(n, k) |
選び方の数 |
clamp(x, low, high) |
値を範囲内に収める |
hex(n), bin(n) |
数値を16進数または2進数で表示 |
random(), rand(), random(a, b), rand(a, b) |
乱数 |
complex(re, im), real, imag, conj, arg |
複素数 |
sum, total, product, average, mean, avg, median, min, max, count, length, variance, stddev, stdev |
リストの合計と統計(いくつかは個別の引数も可) |
sum(expr, var, lo, hi), summation(...), product(expr, var, lo, hi) |
カウンターを動かしながらの総和と総乗 |
range(a, b), range(a, b, step) |
両端を含む数値のリスト |
sort, reverse, unique, slice(list, start, end) |
リストの並べ替えと取り出し |
map(expr, var, list), filter(cond, var, list) |
リストの各項目を計算、または判定 |
dot, cross, identity(n), shape, transpose, det, inverse, trace, rank |
ベクトルと行列 |
solve_system(A, b), eigenvalues, qr, lu, svd |
連立一次方程式と行列の分解 |
solve(equation, var, lo, hi) |
2つの境界の間で方程式を数値的に解く |
differentiate(expr, var), derivative(expr, var) |
式としての導関数 |
differentiate(expr, var, point), derivative(expr, var, point) |
ある点での微分係数(数値) |
integrate(expr, var, lo, hi) |
定積分(数値計算) |
easter(year) |
西方教会のイースター(日曜日) |
tyre_speed(width, aspect, rim, rotation) |
タイヤサイズとホイールの回転から走行速度を求める |
数値と数え上げ
| 関数 | 引数と意味 |
|---|---|
abs(x) |
絶対値。量の単位はそのまま。複素数では大きさ |
sign(x) |
単位のない実数の符号(-1、0、1) |
int(x), trunc(x) |
整数部分(0の方向へ切り捨て) |
sqrt(x) |
平方根。負の数の場合は複素数の根として求めます:sqrt(-16 + 0i) |
cbrt(x) |
立方根。負の数にも使えます |
factorial(n), fact(n) |
0以上の整数の階乗。n! とも書けます |
gcd(a, b) |
2つの正確な数の最大公約数。負になることはありません |
lcm(a, b) |
2つの正確な数の最小公倍数。負になることはありません |
clamp(x, low, high) |
値を low と high の間に収めます。すべて同じ種類の値で、下限を先に書きます |
permutation(n, k) |
n 個から k 個を順序付きで選ぶ方法の数 |
combination(n, k) |
n 個から k 個を順序を問わずに選ぶ方法の数 |
hex(x), bin(x) |
数値を16進数または2進数で表示 |
abs(-£45.20) 答え £45.20sign(-5) 答え -1int(7.8) 答え 7sqrt(144 m^2) 答え 12 mcbrt(-27) 答え -3factorial(5) 答え 120gcd(1920, 1080) 答え 120lcm(4, 6) 答え 12clamp(115, 0, 100) 答え 100clamp(£120, £0, £100) 答え £100.00combination(10, 2) 答え 45permutation(8, 3) 答え 336hex(255) 答え 0xFFbin(10) 答え 0b1010身近な使い方をいくつか挙げます。gcd(1920, 1080) を見ると、1920 × 1080の画面は16:9(1920 ÷ 120と1080 ÷ 120の比)だとわかります。combination(10, 2) は10人のグループで作れる2人組の数、permutation(8, 3) は8人のランナーに金・銀・銅を割り当てる方法の数です。
clamp は、値と2つの上下限がすべて同じ種類のものを表していれば、お金、量、時間を単位付きのまま扱います。そのため clamp(£120, £0, £100) で、返金額の上限を£100.00にできます。階乗と選び方の数には整数を使い、k は n 以下にしてください。5! は factorial(5) の短い書き方です。ほかの累乗根にはフレーズ root 3 of 27 を使います。汎用の root(...) 関数はありません。
端数処理
round、floor、ceil には、丸める単位(ステップ)を省略可能な引数として渡せます。
round(17.46, 0.05) 答え 17.45ceil(23, 6) 答え 24floor(7.8) 答え 7ceil(23, 6) は、23個の卵を6個入りの箱単位に切り上げます。刻みは小数点以下の桁数ではありません。round(17.456, 2) は2単位で丸めるので18になり、round のヒントには代わりに 17.456 to 2 dp と書くよう提案が表示されます。有効数字で丸めるには、to 3 sf と書きます。ちょうど半分の値、負の数、お金の丸め方については、端数処理を参照してください。
三角関数と角度
| 関数の種類 | 意味 |
|---|---|
sin, cos, tan |
三角関数。単位のない数値はラジアンとして扱います |
sind, cosd, tand |
単位のない数値を度として扱う三角関数 |
asin, acos, atan |
逆三角関数。結果にはラジアンの単位が付きます |
asind, acosd, atand |
逆三角関数。結果を度で返します |
atan2(y, x) |
象限を考慮した角度。単位のないラジアンの数値で返します |
sinh, cosh, tanh |
双曲線関数 |
asinh, acosh, atanh |
逆双曲線関数 |
sin(30°) 答え 0.5cosd(60) 答え 0.5tan(45°) 答え 1sin(pi/2) 答え 1asind(0.5) 答え 30°asin(1) 答え 1.5707963268 radasin(0.5) in degrees 答え 30°atan2(-1, -1) * 180 / pi 答え -135cosh(0) 答え 1sin、cos、tan には、30° や 30 degrees のように、どの角度単位の値でも渡せます。asin、acos、atan の結果を度で表示するには、上の例のように in degrees を付けるか、度を返す関数を使います。
atan2 は y の値を先に受け取り、角度がどの象限にあるかを判断します。そのため atan2(-1, -1) は左下(−135°)を指します。atan(1) だけではこれを区別できません。
双曲線関数は単位のない数値を受け取ります。逆関数は、実数の範囲に収まる値しか受け付けません。たとえば asin(2) は Error: imaginary number を表示します。複素数の結果については、複素数を参照してください。
対数と指数関数
| 関数 | 意味 |
|---|---|
ln(x) |
自然対数 |
log(x), log10(x) |
底が10の対数 |
log2(x) |
底が2の対数 |
logbase(x, b) |
底を b とする x の対数 |
exp(x) |
自然指数関数 |
log(1000) 答え 3log10(1000000) 答え 6log2(1024) 答え 10logbase(81, 3) 答え 4ln(exp(2)) 答え 2exp(0) 答え 1対数には正の数が必要です。log(0) は Error: ∞、log(-100) は Error: imaginary number を表示します。複素数の対数を求めるには、ln(-1 + 0i) のように数を複素数として書きます。底は1以外の正の数でなければなりません。対数、指数関数、双曲線関数には、単位やお金を使えません。
乱数
random number between 1 and 6 答え 4random(1, 6) 答え 2rand(1, 100) 答え 57random() 答え 0.4381930527rand() 答え 0.9102746385random(0, 1) 答え 0.2373052626random(a, b)とフレーズrandom number between a and bは、aからbまで(両端を含む)の整数を返します。random()は0以上1未満の小数を返します。random(0, 1)は特別な扱いで、これと同じ動作をします。randはrandomの別名です。- 範囲には単位のない整数を小さいほうから指定し、64ビット整数の範囲に収めてください。引数が1つだけ、または3つ以上の場合や、小数、逆順の範囲を指定した場合はエラーになります。
- Varligは、ノートを再計算するたびに新しい数を引くことがあります。後の行でも同じ数を使いたい場合は、
出目 = random(1, 6)のように変数に保存してください。
リストと統計
average([12, 18, 9, 21]) 答え 15median([3, 9, 4, 7, 5]) 答え 5sum([£12.50, £8, £4.25]) 答え £24.75max(4, 9, 2) 答え 9stddev([2, 4, 6]) 答え 2sum(k, k, 1, 100) 答え 5,050range(0, 20, 5) 答え [0, 5, 10, 15, 20]sort([3, 1, 2]) 答え [1, 2, 3]slice([10, 20, 30, 40], 1, 3) 答え [20, 30]map(x * 1.2, x, [£10, £25]) 答え [£12.00, £30.00]filter(x > 10, x, [4, 12, 18]) 答え [12, 18]sum(total とも書けます)、product、average(mean、avg とも書けます)、median、min、max、count、length、variance、stddev(stdev とも書けます)はリストを受け取り、いくつかは個別の引数も受け付けます。パーセンタイルを求める関数はありません。引数が4つの sum、summation、product は、カウンターを lo から hi まで動かしながら式を足し合わせたり、掛け合わせたりします。reverse と unique もリストを受け取ります。slice での位置の指定、標本統計と母集団統計などについては、リストと統計を参照してください。
ベクトル、行列、微積分
dot([1, 2, 3], [4, 5, 6]) 答え 32det([[2, 1], [1, 3]]) 答え 5solve_system([[1, 1], [1, -1]], [10, 2]) 答え [6, 4]solve(x * 1.2 = 60, x, 0, 100) 答え 50differentiate(x^2, x, 3) 答え 6integrate(x^2, x, 0, 3) 答え 9solve_system([[1, 1], [1, -1]], [10, 2]) は、足すと10、差が2になる2つの数を求めます。solve(x * 1.2 = 60, x, 0, 100) は、20%のVATを加えると60になる税抜き価格を、0から100の範囲で探します。cross、identity、shape、transpose、inverse、trace、rank、eigenvalues、qr、lu、svd については、ベクトルと行列を参照してください。式としての導関数や、ソルバーと積分の制限については、総和、方程式の解法、微積分と高度な数学:機能と制限を参照してください。
複素数
abs(3 + 4i) 答え 5complex(3, 4) 答え 3 + 4iconj(3 + 4i) 答え 3 - 4ireal(3 + 4i) 答え 3imag(3 + 4i) 答え 4arg(z) は、複素数の偏角をラジアンで返します。複素数を参照してください。
日付と車両
easter(2030) 答え April 21, 2030tyre_speed(205, 55, 16, 1000 rpm) in km/h 答え 119.1103438682 km/heaster(year) は、指定した年の西方教会のイースター(日曜日)を返します。フレーズ Easter 2030 と同じ日付です。easter(2030) + 1 day のように、そこから直接日数を計算できます。日付とカレンダーを参照してください。tyre_speed は、タイヤ幅(ミリメートル)、扁平率(パーセント)、リム径(インチ)、ホイールの回転速度を受け取ります。料理、音、画面、機械を参照してください。