この記事は「関数」の概念を、ざっくりと直感的に理解してもらう事を目的として書きます。
あなたがもし、
- 数学を勉強していて「関数」とは何なのかイマイチ理解できない人。
- エクセルやプログラミングで「関数」って出てくるけど、イマイチ消化不良! 「引数」? 「戻り値」?? 何それおいしいの!? とか思っている人。
のいずれかであれば、ぜひ読んでみて下さい。
※数学の関数の概念だけ知りたい方は「3.エクセルやプログラミングで登場する関数」は読み飛ばしてOKです。
そもそも関数とは何か?
関数とは、ざっくり言うと変換装置です。
例えばりんごを入れると、アップルパイ作って出すような装置です。
この装置にりんごを入れると、装置はりんごの皮をむいて、パイ生地にセットして焼きます。
焼きあがったらアップルパイの完成! この時点で装置から出てきます。
では、この装置にチョコレートを入れるとどうなるか?
装置はチョコレートの包装紙をむいて、パイ生地にセットして焼きます。
焼きあがったらチョコレートパイの完成! この時点で装置から出てきます。
どうやら、この装置は入れたものをパイに変換する変換装置のようですね。
こんな風に、入れたものを何かに変換して出す装置を関数と呼びます。
数学で登場する関数
数学における関数y = f(x)を上の例のように書くとこんな風になります。
- アップルパイ = 変換装置(りんご)
- チョコレートパイ = 変換装置(チョコレート)
これを文章で書くと
- りんごを変換装置に入れたものがアップルパイに等しい
- チョコレートを変換装置に入れたものがチョコレートパイに等しい
となりますが、数式風に書いた方が簡潔になるのでy = f(x)のように書きます。
- アップルパイ = 変換装置(りんご)
- チョコレートパイ = 変換装置(チョコレート)
りんごとアップルパイの関係を例にすると
x = りんご
y = アップルパイ
で、
変換装置の名前がfという事になります。
なぜfなのか? というと、英語で関数という意味のfunctionの頭文字のfから来ています。
y = function(x) をy = f(x) と省略しているイメージですね。
また数学では、このxやyを変数と呼びます。(厳密にはyを従属変数、xを独立変数と呼びます。)
xがりんご の時は、yはアップルパイ
xがチョコレート の時は、yはチョコレートパイ
のように変わる数なので「変数」と覚えればイメージしやすいですね。(この例は数ではないですが)
ここで、f(x) = 2x + 1 という式について考えてみましょう。
これは関数fがxを変換してyにするときの変換手順を書いた式になります。
例えば、この関数の
変数xに1を入れる(x = 1)と、
f(x) = 2x + 1は、まず1を2倍して2、これに1を足して、3という数字がyとして出てきます。
式:f(1) = 2×1 + 1 = 3
変数xに2を入れる(x = 2)と、
f(x) = 2x + 1は、まず2を2倍して4、これに1を足して、5という数字がyとして出てきます。
式:f(2) = 2×2 + 1 = 5
変数xに3を入れる(x = 3)と、
f(x) = 2x + 1は、まず3を2倍して6、これに1を足して、7という数字がyとして出てきます。
式:f(3) = 2×3 + 1 = 7
このように、f(x) = 2x + 1は、xに入った数字を2倍して1を足すという変換手順を簡潔に書き表したものになります。
りんごとアップルパイの例で言うと、
りんごの皮をむいて、パイ生地にセットして焼く
の部分が変換手順ですね。
数学ではこの変換手順をf(x) = 2x + 1のように簡潔にわかりやすく書いて、
簡単に扱えるようにしているということです。
エクセルやプログラミングで登場する関数
エクセルやプログラミングでは、数学で登場した関数y = f(x)の
yを戻り値と呼び、xを引数と呼びます。(数学ではyが従属変数、xが独立変数)
また、fの部分は変換処理の種類に応じて、具体的な名前が割り当てられています。
例えば、引数の合計値を戻り値とするSUM関数は、
=SUM(数値1, 数値2, …) (※戻り値を表すyの部分は省略して書く)
という形をしていて、和を意味するSUMという名前が割り当てられています。
エクセルでは、IF関数とかVLOOKUP関数とか、既に用意された関数を選んで使うことが一般的ですが、
プログラミングではもっと自由度が高く、関数が引数を変換して戻り値を返すための変換手順を自分で自由に設定できます。
※もちろん既に用意された関数もたくさんあるので、そこから選んで使う事も出来ます。
例えば、VBAというプログラミング言語を使って下にように書きます。(言語によっていろいろな書き方があるので、ここでは雰囲気を味わってみて下さい!)
Function sum(ByVal a As Long, ByVal b As Long) As Long
Dim total As Long
total = a + b
sum = total
End Function
このsumと名前を付けた関数は、sum(1, 3)のように数字で引数を2つ入れることで、この2つの引数を足し合わせて4を戻り値として返すという処理をします。
もう一つ例を書きます。
Function max(ByVal a As Long, ByVal b As Long) As Long
If a > b Then
max = a
ElseIf a < b Then
max = b
End If
End Function
このmaxと名前を付けた関数は、max(1, 3)のように数字で引数を2つ入れることで、この2つの引数で、どちらの数が大きいかを判定して、大きい方の3を戻り値として返すという処理をします。
プログラミングでは、このように関数を自由に作れるので、同じような処理を何度も書かないために関数としてまとめておいて、使いまわすことでプログラムを書く効率を高めたり、コードを読みやすくすることが出来ます。
まとめ
いかがだったでしょうか。
まとめると、関数というのはインプットしたものを、決められた手順で変換してアウトプットする変換装置です。
- 数学ではインプットする数を独立変数と呼び、アウトプットする数を従属変数と呼びます。
- エクセルやプログラミングでは、インプットするものを引数と呼び、アウトプットするものを戻り値と呼びます。
いずれにしても、インプットが何で、アウトプットが何で、どんな変換手順なのかという3つのポイントを意識していれば、どんな関数に出くわしても(または自分で作ることがあっても)、落ち着いて向き合う事ができることでしょう。
コメント