| 
算術演算子
この節では、数に適用されるすべての演算子と関数についてまとめます。この他にも多くの演算子がありますが、 ベクトルと行列 , 幾何演算子 , および 関数プロット  の節で解説します。
 挿入演算子
数学の基本的な演算子 + , - , * , / ,  はそのまま使えます。これらは、数とリストに適用できますが、演算の意味は、適用されるものによって違います。たとえば、  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で定義されますので、abは一般には多価関数です。bが整数でない場合にはabは最初の主要な値を返します
例:| 式 | 結果 |  | 52 | 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. 
 
    
     |  |