はじめMath! Javaでコンピュータ数学

第35回 集合の数学 和集合・積集合

この記事を読むのに必要な時間:およそ 3.5 分

韓国を訪れた際,仏教寺院建築を見ると,色彩こそ異国情緒を感じますが,建物の雰囲気はとてもよく似ていました。ご近所さんなのだ,ということを強く感じました。アジアの文化はどれも違っているようでどこか似ています。違いは何で,共通するところは何か,そう考えるのは,今回の和集合・積集合の数学と共通するように思われます。さて,考え方を数学的に切り替えて,今回の集合の数学に取り組んで行きましょう。

図35.1 相違と共通点から技を学ぶ

図35.1 相違と共通点から技を学ぶ

和集合

和集合とは

和集合とは,二つの集合を「もれなく」「だぶりなく」ひとつにまとめる演算です。集合Aと集合Bの和集合はA∪Bと書きます。「エー・カップ・ビー」と読みます※1)。図35.2(a)にオイラー図を用いた和集合の演算例を示します。

和集合の記号∪と全体集合の記号Uはよく似ているので紛らわしく見えます。手で書く際には全体集合の記号Uの開いた側を釘の頭のようにつぶして書くと良いでしょう。

図35.2 和集合とは

図35.2 和集合とは

※1)
英語ではA join Bです。

和集合の要素数

図35.2を詳しく見ましょう。

和集合演算は二つの集合を「もれなく」「だぶりなく」ひとまとめにします。ですから,図35.2(a)のような場合,集合Aに含まれている数3,4,5と集合Bに含まれていた3,4,5はだぶります。和集合を取ったあと,どちらかに含まれていた3,4,5を捨てなければなりません。AとBで重複する要素は片方を無視し一つと数えるのです。このため,n(A)=5,n(B)=5なのですが,重複が3ありますので,n(A∪B)=7となります。単純に,5+5=10とならないので注意が必要です。

和集合と現実問題

コンピュータを用いたデータ処理に当てはめて考えてみましょう。別々に収集された二つのデータの集合から,重複する部分を取り除いて効率よくデータを集積したいという場合に相当します。カードのコレクションをしている人が重複するカードを持っていると,一つだけ残して他を処分してしまうような事ですね。好きなアイドルのカードなら,同じのが何枚あってもかまわない?それは趣味の問題。人の感情は数学で処理出来ませんという現実問題。許してあげましょう。

ともあれ,重複を取り除いて一つの集合にまとめるという操作は,次の式35.1のように書くことが出来ます。

≡は「定義」を意味します。プログラマは,右から左へ値を「代入」する習慣がありますから,次の式35.2のように書くこともあります。

今回の例の場合は,集合AとBの要素の様子が図35.2(b)のようになっていました。ハッチングした部分(斜線で埋めた部分)が和集合の演算結果を表しています。和集合が常にこのような関係にあるとは限りません。二つの集合の要素の様子は図35.2(c)から(d)のようにいくつかの場合が考えられます。プログラミング言語で和集合の処理を行う場合には,それぞれの場合を意識した処理を心がけましょう。単純に配列やコレクションクラスを連結してハイおしまい!と出来ないのです。

積集合

積集合とは

積集合とは,二つの集合から共通部分を取り出す演算です。集合Aと集合Bの積集合はA∩Bと書きます。「エー・キャップ・ビー」と読みます※2図35.3(a)にオイラー図を用いた積集合の演算例を示します。

図35.3 積集合とは

図35.3 積集合とは

※2)
英語ではA meet Bです。

積集合の要素数

集合AとBが図35.3(a)のような関係にある時の積集合の結果は,右端のように要素数n(A∩B)=3となります。図35.3(b)のように,ハッチングして示すことも出来ます。

和集合の時と同様,二つの集合の要素がどのような様子かによって,図35.3(c)から(e)のように図が異なります。

積集合と現実問題

CADのデータをメモリに読み込み,線分を追加し,再び保存するという場合を例にとりましょう。追加されたデータのみを保存すれば,処理時間もデータのサイズも節約できます。このような場合に,変更前の図面データと変更後の図面データで積集合をとり,結果のみを追加で保存すれば無駄なく効率が良くなります。

著者プロフィール

平田敦(ひらたあつし)

地方都市の公立工業高等学校教諭。趣味はプログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。

コメント

  • 図35.2に誤りあり

    和集合ですから集合A,B両方の要素をもれなくダブりなく含まなければなりません。
    図では共通部分が描かれています。
    従って図は誤りです。

    読者さんの指摘で気がつきました。

    この記述を持って訂正してお詫びいたします。

    Commented : #1  平田敦 (2013/07/04, 09:31)

コメントの記入