Top

あちゃぴーの自転車通勤
function 関数の f(x) って何?

y = 2x

こんな式を中学で習う。x に何かを入れると y が求められるという。 一般的に入力は x で、出力は y と決められている。逆はだめ。何で? 求まるジャン! 高校になると

y → f(x)

このように置き換えましょう。と言われてしまう。y は何だったの?という疑問が出てしまう。とりあえず言われたとおり、上の式に当てはめるとこうなる。

f(x) = 2x

f は function の略で単なる名前に過ぎない。必ずしも f(x) である必要はなく、g(z) でも h(t) でも構わない。 専門書は、この記述で書かれているので、これを使うと、ちょっと大人っぽい気になったりもした。 でも改めて考えてみると不思議な気もする。わざわざこんな書き方しなくてもいいじゃんと。 強い疑問でもなかったので長い間放置状態が続く。

最近C言語をやってみると、f(x) に対するモヤモヤとしたものが取れ始めた。 C言語では関数単位でプログラムを作る。まさに数学の関数と同じ。書き方もそっくり。例えば、

int function(){}

function が関数名で ( ) の中には引数が入る。つまり f(x) の x が引数に当たる。数学と全く同じ構造になっている。そして処理内容は { } の中に書く。C言語ではイコールは使われないが { } が同じ働きをする。「f(x) = 2x」をCで書くと下のようになる。

int function(int x)
{
    return 2 * x;
}

「function()」という名前の関数に「x」という整数を入れると、「2を掛けて戻す」という内容。

C言語と同じ感覚で数式を見ると、数式の意図が明確に見えてくる。確かに y を使っていたら、y に入れて x を導こうなんて考えてもおかしくないが、f(x) だったら、その気もなくなるというわけ。今度は何で「y」を使っているの?という疑問が出てしまった。パラドックスか? 予想するにはグラフとのかかわりだろう。

アコギで音楽理論