どうも、木村(@kimu3_slime)です。
今回は、数学における演算という用語を、二項演算、単項演算の簡単な例を通して紹介したいと思います。
目次
二項演算
演算とは、簡単に言えば、足し算引き算掛け算割り算(加減乗除)のような計算の総称です。それらは四則演算と呼ばれますが、四則演算は二項演算の一種です。
例えば、足し算(加法)という計算は、2つの数\(x,y\)に対して\(x+y\)という結果を返してくれます。これを関数の記号を使って書けば、
\[ \begin{aligned}f(x,y)= x+y\end{aligned} \]
という2変数関数と捉えることができます。2変数関数というのは、2つの数のインプットに対して、1つの数のアウトプットを返す対応関係です。
足し算とは、2変数関数\(f(x,y)=x+y\)の\(f\)を省略して書いたものだったわけです。2変数関数は\(f(x,y)\)と表記することが多いですが、足し算では関数を表す記号\(+\)を真ん中に書いています。この記法は、中置記法(ちゅうちきほう infix notation)と呼ばれるものです。
二項演算とは
さらにこの見方を一般化しましょう。例えば実数の足し算ならば、\(f(x,y)=x+y\)は、\(\mathbb{R}\)を実数の集合として、\(f:\mathbb{R}\times \mathbb{R} \to \mathbb{R}\)という関数として見ることができます。
こうした関数、写像を一般的に呼びましょう。\(X\)を集合として、\(f:X \times X \to X\)という形の関数(写像)を、二項演算(binary operation)と呼びます。
演算 operation を日本語的に捉えるなら、操作とも言えるでしょう。2つの数を特定の方法でいじって、別の数を作り出すわけです。
四則演算
加減乗除といった四則演算は、二項演算です。
\[ \begin{aligned}f(x,y)= x+y\end{aligned} \]
\[ \begin{aligned}f(x,y)= x-y\end{aligned} \]
\[ \begin{aligned}f(x,y)= x\times y\end{aligned} \]
\[ \begin{aligned}f(x,y)= \frac{x}{y}\end{aligned} \]
割り算では\( y \neq 0\)としていることに注意。
べき乗、べき乗根
\(2^3\)のようなべき乗、\(\sqrt{2}= 2^{\frac{1}{2}}\)といったべき乗根という操作も二項演算です。
\[ \begin{aligned}f(x,y)= x^y\end{aligned} \]
コンピュータ上ではx^yとハット記号^で表記するのが普通です。
参考:2分の1乗、分数乗とは:指数法則を知ろう、マイナス乗、ゼロ乗とは:指数法則を知ろう、数学における^記号の意味、読み方は?
最大公約数
\(6,15\)の最大公約数は\(3\)です。最大公約数は、2つの整数によって1つの数を対応させているので、二項演算です。
\[ \begin{aligned}f(x,y)= \mathrm{gcd}(x,y)\end{aligned} \]
参考:整数の除法、割り切れる・約数b|a、最大公約数gcdとは?
組み合わせ、二項係数
\(n\)個のものから\(k\)個のものを取り出すときの組み合わせの総数\(_n C_k\)、二項係数も二項演算です。
\[ \begin{aligned}f(n,k)= {}_n C_k\end{aligned} \]
命題、集合の和と積
\(A,B\)を命題として、「\(A\)または\(B\)」や「\(A\)かつ\(B\)」という命題が定まるので、「または」や「かつ」は2項演算です。
\[ \begin{aligned}f(A,B) = A \lor B\end{aligned} \]
\[ \begin{aligned}f(A,B)= A \land B\end{aligned} \]
または\( \land\)やかつ\(\lor\)のような論理に対する演算記号は、論理演算子と呼ばれます。
また、\(A,B\)を集合として、その和集合や共通部分といった集合を対応させるのも、二項演算ですね。
\[ \begin{aligned}f(A,B) =A \cup B\end{aligned} \]
\[ \begin{aligned}f(A,B) = A \cap B\end{aligned} \]
(厳密に言えば、集合全体の集合:クラスを考えざるを得ないので、関数とは言えませんが、ここではその議論には踏み込まないことにします)
参考:記号論理、命題論理入門:覚えるべき論理記号(否定、かつ、または、ならば、同値)とは、集合論入門:集合の定義、数の集合、ラッセルのパラドックス
ベクトルの和、スカラー倍
\(x,y\)をベクトル、\(\lambda \)をスカラーとすると、ベクトルの和、スカラー倍を考えることができます。これらの計算も二項演算です。
\[ \begin{aligned}f(x,y)=x+y\end{aligned} \]
\[ \begin{aligned}f(\lambda ,x)=\lambda x\end{aligned} \]
線形空間(ベクトル空間)を考えるとは、2つの演算(和、スカラー倍)で特定の条件を満たすものが定まる、と言えます。
参考:抽象ベクトル空間・線形空間の具体例R^N:順序対と直積集合
ベクトルの内積や距離は、2つのベクトルに対して1つの数を対応させます。狭い意味では二項演算ではありませんが(結果がベクトルではないので)、これも二項演算に含めることがあります。
\[ \begin{aligned}f(x,y)=\langle x,y \rangle\end{aligned} \]
\[ \begin{aligned}f(x,y) = \|x- y\|\end{aligned} \]
参考:ユークリッド空間R^Nの内積、ノルム、距離について解説
ベクトルの外積は二項演算です。
\[ \begin{aligned}f(x,y)= x \times y\end{aligned} \]
演算について閉じている
集合\(X\)の上で考える二項演算の結果が\(X\)におさまることを、演算について閉じていると言います。
例えば、自然数の集合\( \mathbb{N}\)は加法については閉じていて、減法については閉じていません。自然数同士の足し算の結果は自然数です。一方で、\(2-3\)という計算を考えると、結果は非自然数(整数)になってしまいます。
一方、整数の集合\(\mathbb{Z}\)で考えれば、加法についても減法についても閉じています。このことは抽象代数学では、\(\mathbb{Z}\)は加法という演算について群をなしていると言います。
参考:群論入門~回転群と巡回群を例に、群の定義・同型・位数を解説
また、整数の集合\(\mathbb{Z}\)は乗法について閉じていますが、(あまりを許さない)除法について閉じていません。\(\frac{2}{3}\)を整数として表すことはできず、結果は(整数でない)有理数となっています。このことを抽象代数学の言葉で言えば、整数の集合は環をなすが、体にはならない、と言います。(詳しくは別記事で)
単項演算
単に「演算」というときは二項演算を想定しているケースは多いですが、それ以外の演算も考えられます。
例えば、\(3\)という数に対して、その符号を逆にした\(-3\)という数を考えることができます。
一般に、集合\(X\)において定義された関数(写像)\(f:X\to X\)を単項演算(unitary operation)と呼びます。
マイナス、逆数、絶対値
ある数のマイナスを取る、逆数を取るという操作は単項演算です。
\[ \begin{aligned}f(x)= -x\end{aligned} \]
\[ \begin{aligned}f(x) = \frac{1}{x}\end{aligned} \]
数に対して、大きさが等しい正の数を返す操作、絶対値も単項演算です。
\[ \begin{aligned}f(x) =|x|\end{aligned} \]
階乗
数え上げ、組み合わせの問題では階乗\(n!\)を考えますが、この階乗を取るという操作は単項演算です。
\[ \begin{aligned}f(n) = n!\end{aligned} \]
命題、集合の否定、補集合
命題\(A\)に対してその否定命題を対応させる操作
\[ \begin{aligned}f(A) = \lnot A\end{aligned} \]
や、集合\(A\)に対しその補集合を対応させる操作
\[ \begin{aligned}f(A) =A ^c = X \setminus A\end{aligned} \]
は、単項演算です。
転置
行列やベクトルに対し、その転置行列を対応させる操作は単項演算です。
\[ \begin{aligned}f(A)= A ^{\top}\end{aligned} \]
n項演算、多項演算
これまでに二項演算、単項演算について考えてきました。これを一般化すると、インプットがたくさんの場合を考えることができます。
\(X\)を集合として、関数(写像)\(f :X ^n \to X\)のことを\(n\)項演算(n-ary operation)、多項演算と呼びます。
\(n=2\)のときが二項演算、\(n=1\)のときが単項演算、というわけです。
\(A\)を命題とし、\(b,c\)を数としましょう。次の対応関係は、3項演算です。
\[ \begin{aligned}f(A,a,b)= \begin{cases}b & (Aが真)\\c & (Aが偽)\end{cases}\end{aligned} \]
これはプログラミングでは「A ? b : c」と表記されることがあるようです。もし\(A\)ならば\(b\)を返し、\(A\)でないならば\(c\)を返す、つまりif A then b, else c のことですね。
エクセルのような表計算ソフトでは、いくつかの数値を合計するSUM関数というものがあります。
\[ \begin{aligned}\mathrm{SUM}(x_1,x_2,\dots,x_N) = x_1+\cdots x_N = \sum _{i=1}^N x_i\end{aligned} \]
総和を取るという操作は、\(n\)項演算ですね。(何項の演算でも対応できるように柔軟に定義されているかと思います)
同様に、平均を取る、分散を取るといった操作も\(n\)項演算と言えます。
参考:Pythonで統計量関数(平均、中央値、分散、相関係数)を作り、可視化しよう
以上、数学における演算とは何か、二項演算や単項演算の簡単な例を紹介してきました。
演算とは、加減乗除のように、いくつかのインプットに対してアウトプットを返す関数のことです。関数でなく演算と呼ぶ理由には、アウトプットがインプットと同質であること、よく使う基本的な操作、といったニュアンスがあります。
この記事を通して、演算という言葉が身近なものであると感じてもらえたら嬉しいです。
木村すらいむ(@kimu3_slime)でした。ではでは。
岩波書店 (2018-11-07T00:00:01Z)
¥7,607 (コレクター商品)
こちらもおすすめ
記号論理、命題論理入門:覚えるべき論理記号(否定、かつ、または、ならば、同値)とは
行列全体のなす集合が線形空間(ベクトル空間)となることの証明
Pythonで統計量関数(平均、中央値、分散、相関係数)を作り、可視化しよう