関数|中学の関数 #01
変換という視点から考える
「関数」と聞くと、式が出てきて急に難しく感じるかもしれません。
しかし、最初から式として理解しようとする必要はありません。
関数の本質は、もっと基本的なところにあります。
関数とは、
あるものを入力すると、一定のルールにしたがって別のものを返す仕組み
です。
まずは式ではなく、この「変換」という見方から考えてみます。
具体例:文字数を数える変換
入れた言葉の文字数を数えて返す仕組みを考えます。
この仕組みに名前をつけましょう。
かぞえるくん
とします。
かぞえるくんは、次のような形をしています。
かっこの中に言葉を入れると、その文字数を返してくれるわけです。
たとえば、
となります。
"hello" は 5 文字なので、
です。
ここで大事なのは、この変換器が気分で答えを変えたりしないことです。
"hello" を入れたら、いつでも 5 が返ります。
ある日は 5、別の日は 6 ということはありません。
同じ入力に対して、結果は必ず同じになる。
これが関数の基本的な性質です。
練習問題
問題
の値を求めよ。
▶解答を見る
"hello world" は 11 文字なので、次のようになる。
記号で短く書く
「かぞえるくん」と毎回書くのは少し長いので、記号で表すことにします。
ここでは、 と書くことにします。
は Kazoerukun の頭文字です。
すると、先ほどの例は
と書けます。
ただし、ここで本当に大事なのは という文字そのものではありません。
大事なのは、
どのようなルールで変換しているか
です。
この場合、 という記号は
「入れた言葉の文字数を返す」
というルールを持つ変換器を表しています。
練習問題
問題
が文字数を数える関数であるとき、
の値を求めよ。
▶解答を見る
"school" は 6 文字なので、次のようになる。
すぐに数えなくてもよい
ここで、少し長い単語を考えてみます。
"supercalifragilisticexpialidocious"
という単語です。
かなり長いので、すぐに文字数を数えるのは面倒です。
では、この単語の文字数を K を使って表すとどうなるでしょうか。
となります。
ここで大事なのは、まだ具体的な数字を書いていなくても、
と書いた時点で、
「その単語の文字数を数えた結果」
を表しているということです。
つまり、自分で今すぐ数えなくてもかまいません。
変換器に入れればよく、結果そのものはこの形で表せます。
練習問題
問題
を「入れた言葉の文字数を返す関数」とする。
次の問いに、実際に数えずに を用いて答えよ。
"abcdefg" は何文字か答えよ。
▶解答を見る
文字
関数は「結果」を表せる
ここで大切な点を確認します。
は、ただの途中の式ではありません。
これは
「hello を K によって変換した結果」
を表しています。
もちろん、実際に計算すれば です。
しかし、まだ と書かなくても、 と書いた時点で何を表しているかは決まっています。
同様に、
も、
その単語の文字数
を表しています。
このように関数は、
結果そのものを記号で表すための道具
でもあります。
練習問題
問題
は何を表しているか、言葉で説明せよ。
▶解答を見る
"hi" を によって変換した結果、つまり "hi" の文字数を表している。
記号そのものは本質ではない
ここでは を使ってきましたが、 でなければならない理由が特にあるわけではありません。
別の文字を使ってもかまいません。
重要なのは、どの文字を使うかではなく、
入力と出力の対応関係
です。
つまり、関数で本質的なのは、
何を入れたときに、何が返るのかというルール
です。
練習問題
問題
関数において本質的に重要なのはどちらか答えよ。
(1) 使う文字 (2) 入力と出力の対応関係
▶解答を見る
(2) 入力と出力の対応関係
数学では f を使うことが多い
ここまでは、具体的な変換器として かぞえるくん や K を考えてきました。
ただ、 に特別な意味があるわけではありません。
数学では、関数を表す文字として を使うことが多いので、ここからはその慣習に合わせて を使うことにします。
は function の頭文字です。
ここでも大事なのは文字そのものではなく、
どのようなルールで入力を出力に対応させるか
です。
練習問題
問題
次のうち、関数を表す文字として数学でよく使われるものを選べ。
(1) f (2) q (3) z
▶解答を見る
(1)
数を入れても考え方は同じ
ここまでは、言葉の文字数を数える変換器を考えてきました。
今度は、数を入力する関数を考えます。
ここでは、新しく
「入力した数に 1 を足して返す関数」
を考え、その関数を と書くことにします。
つまり、この は
となる関数です。
ここでも見方は変わりません。
- 1 に 1 を足して 2 を返す
- 2 に 1 を足して 3 を返す
- 3 に 1 を足して 4 を返す
つまり、ここでも
入力 → ルール → 出力
という構造になっています。
練習問題
問題
この が「入力した数に 1 を足して返す関数」であるとき、次の値を答えよ。
▶解答を見る
5
言葉でも数でも、見方は同じ
ここで二つを並べてみます。
見た目は少し違いますが、考え方は同じです。
かぞえるくんは、
入れた言葉の文字数を返す変換器
でした。
一方、 は、
入力した数に 1 を足して返す関数
です。
ルールの中身は違いますが、共通しているのは、
何かを入力し、決まったルールにしたがって結果を返している
ということです。
だから関数は、最初から「計算の式」と考えるよりも、
変換の仕組み
として理解したほうが、本質が見えやすくなります。
練習問題
問題
空らんを埋めよ。
も も、どちらも何かを入力し、決まった __ にしたがって結果を返している。
▶解答を見る
ルール
式として書くと になる
ここで、先ほどの「入力した数に 1 を足して返す関数」を、式で書いてみます。
それが
です。
ここで は、入力する数を表しています。
ただし、ここで使う文字は必ずしも である必要はありません。
本当は、どの文字を使ってもかまいません。
それでも数学で がよく使われるのは、デカルトが使った文字の使い分けが、そのまま慣習として残っているからです。
さて、話を戻して、たとえば のとき、
となります。
つまり、
という式は、
「 を入力すると、 を返す」
というルールを書き表したものです。
練習問題
問題
のとき、
の値を求めよ。
▶解答を見る
6
とは何か
ここで、 という書き方の意味を、もう一度はっきりさせておきます。
は、単なる途中の記号ではありません。
これは
「 を に入れて変換した結果」
を表しています。
この場合、 は「1 を足して返す関数」なので、
です。
同じように、 なら「 を変換した結果」、
なら「 を変換した結果」を表しています。
つまり、 という形は、
入力を入れると、その結果を表す書き方
なのです。
練習問題
問題
のとき、 は何を表しているか説明せよ。
▶解答を見る
を に入れて変換した結果( に を足した結果)
少し先の見方:関数は結果をひとまとまりで表せる
ここまでは、関数を
入力を変換して結果を返す仕組み
として見てきました。
そして、
のような形は、
「 を に入れて変換した結果」
そのものを表しているのでした。
この見方は、式が少し複雑になったときに特に役立ちます。
たとえば、次のような関数を考えてみます。
中学校でこのままの形が出てくることはありません。
ただ、少し複雑な式をあえて見ると、関数をどう見ればよいかがはっきりします。
この式を見たとき、多くの人はまず
「うわ、計算が大変そうだ」
と思うはずです。
その反応で大丈夫です。
ここで大事なのは、その場ですぐ全部を計算することではありません。
たとえば、この関数の のときの値が分かれば、その先の道筋が見えそうだとします。
そのときは、無理にすぐ計算しなくても、
と書いておけばよいのです。
は、まだ具体的な数に直していなくても、
「3 をこの関数に入れた結果」
を表しています。
つまり、
とりあえず とおいて、先に全体の流れを考える
という進み方ができます。
数学では、この考え方がとても大切です。
問題が複雑になるほど、細かい計算をそのたびに全部やろうとすると、
- 今必要なものは何か
- それが答えとどうつながるのか
- 全体としてどんな流れになっているのか
が見えにくくなってしまいます。
それよりも、必要な結果を のようにひとまとまりで表しておけば、先に全体を見ることができます。
細かい計算はいったん脇に置いて、まず全体を見る。
枝葉ではなく、幹を見る。
関数は、そのためにも使える道具なのです。
まとめ
ここまで見てきたように、関数とは
入力を、一定のルールにしたがって出力へ対応させる仕組み
です。
大事な点をまとめると、次のようになります。
- 同じ入力には、必ず同じ出力が対応する
- や は単なる名前であり、本質ではない
- 本質は、入力と出力の対応関係にある
- 関数は、結果そのものを記号で表すことができる
- 入力は数に限らず、言葉のようなものでもよい
- は、「 を に変換するルール」を式で書いたものである
このように考えると、関数は単なる計算のための記号ではなく、
対応関係や変換を表すための考え方
として理解できます。