Arithmetic OperatorsJ

print

算術演算子


この節では、数に適用されるすべての演算子と関数についてまとめます。この他にも多くの演算子がありますが、 ベクトルと行列, 幾何演算子, および 関数プロット の節で解説します。


挿入演算子


数学の基本的な演算子 +, -, *, /, ˆはそのまま使えます。これらは、数とリストに適用できますが、演算の意味は、適用されるものによって違います。たとえば、 5+7 の結果は 12 であり、 [2,3,4]+[3,-1,5] の結果は [5,2,9] です。


加法演算子: <expr>+<expr>



説明: 数(整数、実数、複素数) は、 + 演算子で和が求められます。同じ形をしているリストでも和になり、成分ごとの和が求められます。

例:

結果
7 + 8 15
2.3 + 5.9 8.2
[2,3,4] + [3,4,6] [5,7,10]
[2,3,[1,2]] + [3,4,[1,3]] [5,7,[2,4]]


参照: 文字列演算子


減法演算子: <expr>-<expr>



説明: 数(整数、実数、複素数) は、 - 演算子で差が求められます。同じ形をしているリストでも差になり、成分ごとの差が求められます。また - 演算子は、負(マイナス)記号としても使えます。

例:

結果
7 - 8 -1
8.3 - 5.9 2.4
[2,6,4] - [3,4,6] [-1,2,-2]
[5,3,[1,2]] - [3,4,[1,3]] [2,-1,[0,-1]]



参照: 文字列演算子





乗法演算子: <expr>*<expr>


説明: 数(整数、実数、複素数) は、 * 演算子で積が求められます。数のベクトルまたは数の行列の場合は、演算可能な次元であれば積が求められます。詳しくは例を見てください。

例:

結果 コメント
7 * 8 56 整数の積
(1+i) * (2+i) 1+3*i 複素数の積
2 * [5,3,2] [10,2,4] ベクトルの実数倍
[5,3,2] * 2 [10,2,4] ベクトルの実数倍
[2,2,3] * [3,4,6] 32 ベクトルの内積 (x_1,x_2,…,x_n)*(y_1,y_2, …,y_n)=(x_1*x_2+…+x_n*y_n)
[[1,2],[3,4]] * [1,2] [5,11] 行列と列ベクトルの積
[1,2] * [[1,2],[3,4]] [7,10] 行ベクトルと行列の積
[[1,2],[3,4]] * [[1,2],[3,4]] [[7,10],[15,22]] 行列の積


参照: ベクトルと行列




除法演算子: <expr>/<number>



説明: 数(整数、実数、複素数) は、 / 演算子で商が求められます。
また、ベクトルは数で割ることができます。

例:

結果
56 / 8 7
[6,8,4] / 2 [3,4,2]




べき乗演算子: <expr>ˆ<expr>



説明:

数(整数、実数、複素数) のべき乗で、指数は整数に限らず、実数、複素数でも可能です。正式には exp(b*ln(a)) が計算されます。(ln(a)は複素変数の対数関数)
ln(…) は周期 2*piで定義されますので、 aˆb は一般には多価関数です。 b が整数でない場合には aˆb は最初の主要な値を返します

例:

結果
5ˆ2 25
5ˆ(-1) 0.2
2ˆ(1/2) 1.4142…





角度演算子: <number>°



この演算子は、その数に pi/180 を掛けます。これで、度数法(60分法)による角度を弧度法に変換します。

例:

結果
180° 3.1416…
cos(180°) -1





絶対値演算子: |<number>|



 この演算子はオブジェクトの絶対値を求めます。オブジェクトは、実数、複素数、ベクトルのいずれかです。

例:

結果
|-5| 5
|(3,4)| 5
|1+i| 1.4142…


注意: |_| 演算子を入れ子にして使うことはできません。Cindyscriptはそれを構文エラーとみなします。入れ子にしたい場合はabs()関数を用います。




距離演算子: |<number>,<number>|



  |...| 演算子を、引数2つで使うことができます。その場合、2つのオブジェクトの距離を計算します。オブジェクトは、実数、複素数、ベクトルのいずれかですが、2つとも同じ種類のものとします。

例:

結果
|-5,8| 13
|(1,1),(4,5)| 5


注意: |_| 演算子を入れ子にして使うことはできません。Cindyscriptはそれを構文エラーとみなします。入れ子にしたい場合はdist()関数を用います。






関数



次の演算子は、数(整数、実数、複素数)に適用されます。
いくつかの関数はベクトルにも適用されます。





算術関数

和: add(<expr1>,<expr2>)


差: sub(<expr1>,<expr2>)


積: mult(<expr1>,<expr2>)


商: div(<expr1>,<expr2>)


累乗: pow(<expr1>,<expr2>)


これらは、 +, -, *, /と同等な、2つの数の演算をする関数です。


例:

結果
add(5,6) 11
pow(6,2) 36
mod(23,4) 3
add((1,2),(3,4)) (4,6)
mult(2,(3,4)) (6,8)
mult((4,5),(3,4)) 32





剰余: mod(<expr1>,<expr2>)



説明: mod 関数は <expr1><expr2>で割った余りを求めます。


標準的な関数

平方根: sqrt(<expr>)


指数関数: exp(<expr>)


自然対数: log(<expr>)


これらは、数から数への関数です。
これらの関数では複素数も使えます。





三角関数


標準的な三角関数です。

三角関数 sine: sin(<expr1>)


三角関数 cosine: cos(<expr1>)


三角関数 tangent: tan(<expr1>)


sine の逆関数: arcsin(<expr1>)


cosine の逆関数: arccos(<expr1>)


tangent の逆関数: arctan(<expr1>)


ベクトルのなす角: arctan2(<real1,real2>)


ベクトルのなす角: arctan2(<vec>)



arc は原則として多価です。しかし、演算子は−piからpiの間の解をひとつ返します。

例:

結果
sin(pi) 0
arccos(-1) 3.1416…
arctan2(1,1) 45°
arctan2(-1,-1) -135°






数値関数


次の関数では、単一の数のほか、リストにも適用できます。

絶対値: abs(<expr>)


四捨五入: round(<expr>)


その数以下の最大の整数: floor(<expr>)


その数以上の最小の整数: ceil(<expr>)


複素数の実部: re(<expr>)


複素数の虚部: im(<expr>)


共役複素数: conjugate(<expr>)



複素数に対しては、 round, floor, ceil は実部と虚部のそれぞれに対して適用されます。

abs は、実数、複素数、ベクトルなどのノルムを計算します。他の関数はリストにも適用できます。

例:


結果
round(4.3) 4
round([3.2,7.8,3.1+i*6.9]) [3,8,3+i*7]
abs([1,3,1,2,1]) 4
floor(4.8) 4






乱数


次の関数は乱数を発生します。

0 から 1 までの一様乱数: random()


(0,1)正規乱数: randomnormal()


ブール値の乱数 true または false: randombool()


0 から <number> までの実数の一様乱数: random(<number>)


0 から <number> までの整数の一様乱数: randomint(<number>)




random 関数は、負の数や複素数を引数にすることもできます。例えば、random(-5)-5 から 0までの乱数を発生します。 randomint(6+i*10) は実部が0から6まで、虚部が0から10までの複素数をランダムに発生します。

乱数発生器の初期化: seedrandom(<number>)


疑似乱数は、常に予測不可能な新しい乱数列を発生します。なんらかの理由で、スクリプトを実行するたびに、同じ乱数列を発生させたい場合は、seedrandom() 関数を使います。引数に与えた整数に対し、同じ乱数列が発生します。異なる引数(seed)を与えれば別の乱数列が発生します。

Contributors to this page: Akira Iritani .
Page last modified on Wednesday 11 of February, 2015 [23:25:06 UTC] by Akira Iritani.

The content on this page is licensed under the terms of the License.


Menu