ちしきよく。

雑多系ブログ。みなさんの「何かを知りたい!」という欲を叶えましょう。

全射・単射・全単射をわかりやすく解説してみる



あとで読む

理系学部生、とくに数学とかでよく出てくるけど、理解するのになかなかの時間がかかっているように思える「全射・単射・全単射」を、極力わかりやすく解説してみたいと思います。

というのもネットには「初学者向けに、極力やさしいことばで解説してる」というものがあまりなかったためです。

 

皆さんの学習の手助けになればと思います。

 

以下、注意

  • 数学科や数強の方々向けの厳密な記事ではありません
  • かなり長いです。理解してる部分は読み飛ばして構いません
  • 正確に理解したい方は、教科書を見ながらこの記事を読むとよいでしょう
  • 数式が出てくるので、javascriptをオンにしてください
  • 時間がなくゆっくり振り返る暇がない方向けの「フローチャート」もあります。忙しい方は、下の目次から飛んで、そこだけ読みましょう。
  • 基本的な演算記号(\landとか\Rightarrow)がわかってるのを前提に進みます

 

 

 

写像とは

まず、単射とかなんとかを理解する前に、写像について理解する必要があります。

写像といえば難しいですが、結局「あるものとあるものの対応付け」にすぎません。

 

教室のイスを想像しましょう。小学校や中学校では、登校したらみんな、自分の名前や出席番号が書かれた座席に座りますよね。それもいわば「対応付け」なので、写像と言ってよいでしょう。

人間と座席が対応しているわけですから。

で、その対応付けのことを「写像」と呼ぶ、というだけの話なのです。

 

もうちょい抽象的にいきます。

実は写像の一種に「関数」があるんですよ*1

関数ってのはやはり「あるものとあるものの対応付け」でしかないんですね。

 

www.chishikiyoku.com

 

この記事を合わせて読んでいただけると、理解が深まります。

 

 y=60xという等式があるとします。

 

これはxという文字(後に数字が代入されるので数字といってもいい)とyという文字の関係性を示しているわけですから、この式には「xに60をかける」という関係が隠れてます。

ですから、この関係にfという名前を付けてあげましょう。

そうすると、yというのはxfという関係づけを施したもの、とも言えるわけですから、yf(x)と書くことも可能なはずです。

 

www.chishikiyoku.com

 

あまりピンとこなければこれをお読みください。

 

 

xという文字に60をかける、という対応付けのことを、f(x)と呼ぶにすぎず、yの値はf(x)と等しいというだけの話なんです。

 

対応付けの話なのでとても抽象的に見えますが、写像や関数というのは結局、どこまでいってもその話……と聞けば、安心できませんか?

 

ちなみに写像は英語で"mapping"と言います。地図なんかまさに写像ですよね。

ある街に点を無数にとっていって、それらの点の関係性を「互いの点どうしの比を変えることなく紙上に打っていった」ものが、(1枚の)地図なんです。

もちろん、縮尺を変えた、めちゃくちゃゆがめた地図があってもいいはずで、それが「メルカトル図法」だったり「正距方位図法」だったりするわけです。

しかし何にせよ、現実世界と地図との間での対応付けを写像(mapping)と呼んでいるというわけです。

 

 

全射・単射・全単射とは

では、写像の意味が、全射・単射・全単射とどうカンケーするのか?

結論から言います。

全射とか単射というのは「写像の種類」なんです。

というかそれにすぎません。数式が難しいからといって怯える必要はありません。

 

実は、対応付けはその3つだけではないのですが、ここでは省略します。

 

写像の数式的定義

まずは準備として、写像の数式的な定義を見てみましょう。

 \forall x \in {\it A} \land \forall y \in {\it B} \ \forall z \in {\it B}[\{(x,y)\in f \land (x,z) \in f \} \Rightarrow y=z]

 

あ、ちょ、まって、逃げないでくださ~い!! 

あのですね、これは抽象的な形なので、難しいのは当然なんです。

ゆっくり解説していきますから、頑張ってついてきてくださいね。

まず、一番簡単な形として、 \forall x [p(x)]を見ましょう。

p(x)は「命題」です。真か偽かを数学的に判定することができるもの。

例えばp(x)には「xは奇数である」とかxは素数か素数の積である」とかが入ります。

 

 \forall xというのは「任意のxについて」という意味です。ですからさっきのは「任意のxについて、p(x)が成り立つ」という意味ですね。

 

ここで注意なのは「任意」ということばの意味。任意保険とか任意同行ってことばがよく使われますが、「意に任ずる」というその語義的な意味からは推測ができません。

数学で使う任意は「全て」という意味です。例えばx \in A{\it A}=\{1,3,5 \}ならば、集合Aの中の要素\{ 1,3,5 \}1個1個を全部入れて考えていく必要があります(つまり3回考えるということ)。

 

任意ということは、数字を選ぶ側がどんなに意地悪な選び方をしても大丈夫でなければなりません。そういう意味での「任意」です。

だから結局「全て」という意味になります。

 

そして(x,y)\in fは「xyが、fによって『関係づけられている』」ということです。

 

てことで、 \forall x \in {\it A} \land \forall y \in {\it B} \ \forall z \in {\it B}[\{(x,y)\in f \land (x,z) \in f \} \Rightarrow y=z]を見ていきましょう。これを和訳してみます。

  1. 集合{\it A}からxを選ぶ
  2. 集合{\it B}からyを選び、集合{\it B}からzを選ぶ
  3. fによって(x,y)が対応づけられていて、なおかつfによって(x,z)が対応づけられているとき、yzが同じであることを確かめる(これが「命題」)
  4. これを全てのx,y,zについて確かめる

 

以上が済んだとき初めて、fは写像であるということができます。

ウーン、難しいですね。図にしてみます。

 

なお、以下からの図群では、「図に書かれているものだけがその集合の全ての要素」であるとします。ほんとうはそれぞれ要素を100個ぐらい書きたいのですが見にくいため、便宜的に。

 

f:id:zetakun:20180711135336p:plain

 

まずこんな感じで、集合からそれぞれ要素を取ってきます。 x \in {\it A} y \in {\it B} z \in {\it B}のようになってることを確認してください。

 

当然これらの要素は(x,y)\in f(x,z)\in fを満たさないと議論が始まらない(\Rightarrowの左側のことです)ので、

 

f:id:zetakun:20180711135647p:plain

こんな感じで、何らかの「関係性」(fですね)が満たされる場合を考えます。(x,y)\in f (x,z) \in fとなっていることを図から確かめてみてください。

 

で、上のような図にしてみると、一見yzは別の場所に着地しているようですが、実は違ってて

f:id:zetakun:20180711135810p:plain

となっていなければならない、と。y=zがそれです。で、これを、全てのx,y,zについて確かめることができたとき、fは写像である、ということができます。

 

ここからがとても大事なのですが、

「同じスタート地点から二股以上に分岐してはいけない」ということです。

そしてもう一つ大事なのが、\forall x\in Aという記述からなのですが、

「スタート地点に余りがあってはいけない」

ということ。必ず全てのスタート地点から矢印が出ないといけないんですね。

それらを満たさないと、写像だと言えません。

 

あ、スタート地点というのは集合{\it A}の中の要素xとし、ゴール先とは集合{\it B}の中の要素yとします。暗黙の了解として両方も「任意の」が含まれているので注意してください。どこかを適当に抜き取って、その1つを調べるだけでいいというわけではありませんゆえ。

 

 

ですから当然皆さんはまず、「関係性が全射・単射・全単射かどうか」を調べる前に、そもそもその関係性が写像になっているのか、調べる必要があるというわけです。

 

全射とは

全射は写像の中の種類の一つで、数学的定義は \forall y[y\in B \Rightarrow \exists x\in \ A y=f(x)]ですが、長くなるので省略。自分で後から考えてみてください(需要があれば解説しようと思います)。

 

上の数式が示すのは「集合Bの中にyという任意のゴール先を設けたとき、集合Aの中にxというスタート地点が存在する(少なくとも1つはある)」という意味です。

ですから当然スタート地点が2つあっても構いませんし、3つでも4つでも大丈夫です。

 

 {\it A} = \{x_1 \}とします。

f:id:zetakun:20180711141344p:plain

これは全射。

 

 {\it A} = \{x_1 , x_2 \}とします。(さっきと同じ記号{\it A}を使っていますが、別の集合だと思ってください)

f:id:zetakun:20180711141410p:plain

これも全射。

 

要するに「ゴール先をBの中に(とにかくどこでも)定めれば、Aの中にスタート地点がある」という条件を満たすものが、全射です。

 

単射とは

単射の数学的定義は\forall x \in A \forall y \in B[x \neq y \Rightarrow f(x) \neq f(y)]ですがやはり省略。

 

言いたいことはやはり一つだけ。

「スタート地点が違えば、ゴール先も違う」これだけです。

ですから、 {\it A} = \{x_1 , x_2 \}とすると、

f:id:zetakun:20180711142031p:plain

これは確かに全射ではありましたが、単射ではありません。

スタート地点が違うとき、別々の場所にゴールしなければならないのですから。

 

全単射とは

全射かつ、単射であるものが全単射です。それだけ。

つまり、「スタート地点とゴール先が、余さずに全部fによって関係づけられている」ということですね。全射よりも単射よりも厳しい条件です。

先ほど話した「生徒と座席」の関係は全単射です。 

 

 全射・単射・全単射の例

じっさい、例がないとわかりにくいと思うんで、ちょっとあげてみます。

 

全射の例としては行列と行列式の関係があるでしょう。

n \times nの行列について、行列式を定義することができて(なぜかは省略)、すべての行列について行列式の計算が可能です。

数式で書けばdet: M(n) \to {\mathbb R} ;  A \mapsto det Aです。M(n)はこの世にあるあらゆるn \times n行列の集合です。{\mathbb R}は実数全体の集合。行列と実数の対応付けが行列式の演算というわけですね。

 

これじゃやっぱり難しいと思うので、関数での例を挙げてみます。

全射を満たす関数はy=f(x) = x(x^2 -1)です。ただしx,yは実数とします。

 

グラフを描くと

f:id:zetakun:20180711143508p:plain

(グラフはdesmosで描画。詳しくは

 

www.chishikiyoku.com

 

をお読みください)

 

 

となりますね。このとき、ゴール先であるyは、グラフから明らかなとおり、あらゆる実数を含みます。

全射の定義は「任意のゴール先があるとき、それらに対応したスタート地点がそれぞれある」というものでしたが、グラフから見ると確かに、あらゆるyに対応する実数xがあります。

よって全射になります。

ただし「スタート地点が違えばゴール先も違う」とは言えないので、単射ではなく、全単射でもありません。

 

 

次に単射の例。単射を満たす関数にはy=f(x) =2^xがあります。ただしx,yは実数とします。

 

f:id:zetakun:20180711144047p:plain

 

単射の定義は「スタートが違えばゴールも違う」ですね。確かにそうなっています。

 

ですが全射ではありません。全射になるためには、今回はゴール先が任意の実数である必要がありますが、グラフを見てもわかる通り、yは0より大きいことが明らかなので、ゴール先が余ってしまいますから、全射ではないのです。よって、全単射でもない。

 

 

全単射になる例を見てみましょう。実はこれが1次関数なのです。例えばy=f(x) =2xを見てみましょう。ただしx,yは実数とします。

f:id:zetakun:20180711145038p:plain

 

xyがもれなく、1対1できちんと対応していますね。単射でもあり、全射でもあるので、全単射になります。

 

最後に「全射でも単射でもない」例を見てみましょう。x,yを実数としたときのy=x^2は全射でも単射でもありません。

f:id:zetakun:20180711145236p:plain

まず、ゴール先に余りがあるので全射ではなく、またスタート地点が違えばゴール先も違うとは言えない(例:(-2,4)(2,4))ので、写像ではありますが、どちらも満たさないのです。

 

写像でさえない例を見ましょう。x,yを実数としたときのx^2 + y^2 = 1がそれです。

f:id:zetakun:20180711145439p:plain

写像の必要条件は「スタート地点から二股以上にわかれない」ことでした。

今回は二手に分かれてますね。例えば(0,1)(0,-1)のように。

ですから円のグラフは写像でさえないのです。

 

フローチャート

忙しくて時間がない方のために、写像・単射・全射・全単射判定フローチャートをつくってみました。推奨はしませんが、やむを得ない事情の場合はこれを丸暗記すれば、とりあえず目先のテストには対応できるはずです。

 

f:id:zetakun:20180711152610p:plain

 

以降をつくるのめんどくさかったんで終わらせてますが、

さっきの診断の結果は

f:id:zetakun:20180711153609p:plain

このようになります。

 

とりあえずこのフローチャートさえ覚えておけば、大丈夫だと思います。

 

覚え方

フローチャートを覚えるのも面倒という方のために、語義から思い出せるような覚え方を紹介しておきます。

「全射」は、ゴール先「全」部にスタート地点が対応する、で覚え、

「単射」はスタート地点とゴール先が「単」一に対応する、で覚えましょう。

 

 

練習問題

ではここで練習問題を解いてみましょう。

「写像でない・全射・単射・全単射・写像だが全射でも単射でもない」から選んでください。

 

f:id:zetakun:20180711155633p:plain

スタート地点から二股になってますね。てことは「写像ではない」が正解。

f:id:zetakun:20180711155804p:plain

スタート地点の要素が余ってます(対応付けられてない)から、やはり写像ではないが正解。

f:id:zetakun:20180711155853p:plain

とりあえず、写像ではあるようです。ゴール先の要素が余ってるので全射ではなく、スタートが違えばゴールも違うので、単射。よって単射です。

f:id:zetakun:20180711160028p:plain

少なくとも写像ですね。ゴール先が余ってないので全射ですが、スタートが違えばゴールも違う、とは言えないので、単射ではありません。よって全射。

f:id:zetakun:20180711160114p:plain

スタート地点が違えばゴール先も違いますから単射、ゴール先が余ってないので全射。よって全単射です。

 

f:id:zetakun:20180711160242p:plain

写像ではあるようです。ゴール先が余ってるので全射ではなく、スタートが違えばゴールも違うとはいえないので単射でもありません。

よってこれは「写像だけど全射でも単射でもない」が正解。

 

 

 

 

以下はやや実践的な内容になるため、ここで離脱していただいて構いません。

 

始域と終域による違い

先ほど、全射・単射・全単射の関数の例を紹介いたしましたが、実は注意すべきことがあります。それは始域と終域の話です。

始域というのはまあ……xがとりうる値の種類や下限上限で、終域はそれのyバージョンです。だいたいの問題では「自然数」だったり「有理数」だったり、はたまた「実数」だったりするわけですが、始域と終域によって、全射・単射・全単射が変わることがあるのです。

例えば、 y=f(x) =1.5xを例にとって説明しましょう。

xyも実数であれば、この関数は確かに全単射になります。

しかし、xyも自然数であれば、例えばy=1に対応するxが存在しないので、全射にはなりません。スタート地点が違えばゴールも違うので、単射ではあります。よってこの場合fは全単射ではなく、単射になるのです。

 

「以下の関数は全射か単射か全単射か」系の問題では、必ず始域と終域を確認しておきましょう。

 

まとめ

写像:二股に分かれたり、スタート地点に余りがあったりしない

全射:任意のゴール先について、スタート地点が存在する

単射:スタート地点が違えば、ゴール先も違う

全単射:全射かつ単射

 

 

著しい誤りなどがありましたらご指摘いただけると幸いです…。

それでは、この記事が皆さんのお役に立てることを祈っております。

分野を問わず、理系に携わる人々にはぜひとも勧めたい名著です。テイラー展開や複素積分、固有値問題など、なかなかイメージを掴むのに苦労する分野のことがらが、「直観的に」(見たままに本質をつかむこと)解説されています。

少し文体は固いですが、モノにすればいちいち暗記しなおす必要もなく、かなり便利です。

*1:正しくは「関数という概念を抽象化したもの」が写像