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

第31回 集合の数学 集合と要素[中編]

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

集合と要素 のつづき

前回は集合の定義の方法,そして集合をJava言語で表現する方法を紹介しました。今回は集合に含まれる要素に注目します。

図31.1 集合と要素の図示例 その2

図31.1 集合と要素の図示例 その2

図31.1を集合の数学記号を用いて表現すると,次のように書くことが出来ます。

では,順番に見ていきましょう。

集合の要素

式31.1は,前回と同様集合Aに含まれる要素を一気に定義しています。

式31.2は,「aは集合Aの要素である」と要素を個別に宣言しています。式31.3も同様の意味です。「集合Aには要素aが含まれる」と読みます。数学的には,二つの式は等価です。文脈によって式の形を適切に選びましょう。

集合に「含まれない」要素を明示するための方法もあります。式31.4「数fが集合Aに含まれていない」と宣言しています。

Java言語の配列やArrayListに格納されたデータの集合に対して,式31.2や式31.4のような処理や判断をするにはどうすればよいでしょうか。配列を用いた場合は,配列の先頭から逐一比較して同じ要素があるかどうか確認します。人間にとっては面倒ですが,コンピュータは文句を言わず処理をしてくれます。とはいえ,逐一比較するプログラムを作るのは大変ですし,プログラムのミスも心配です。そこで,ArrayListには便利な道具立てが用意されています。次回の演習問題でそれを用いれば,ぐっと短くわかりやすいコードを書くことが出来ます。どんな道具立てがあるのか,ArrayListについて調査をしておいてください。次回の問題に取り組むための宿題としておきましょう。

補集合

式31.5は,集合Aに含まれない部分が集合Bであると定義しています。このような操作を集合Aの補集合をとるといいます。補集合をとるためには,集合Aに含まれない部分も定義されていないと,具体的な要素が得られません。図31.1のなかには,四角形の枠が描かれています。四角形の枠の中に要素aからgがちりばめられ,その内のいくつかを円で囲み集合Aと名付けています。四角形の枠が,ここで取り扱う要素の全体を表しています。この枠の中に入っていないものは取り扱わないのだ,という意味でもあります。四角形の枠で囲まれた集合を全体集合といい,記号Uで表します※1)。

具体的に考えてみましょう。あなたの年賀状の住所録を全体集合とします。住所録は職場関係の人々,友人,親類と分類されています。更に,今年度喪中の人にはチェックを入れてあります。

さて,自分自身も喪中であるとします。近頃では,祖父・祖母の喪中では喪中を出さず,親類のみ賀状の送付を控えるのが多くなっているそうです。そこで,こんな方針で賀状・喪中はがきを投函することにしました。

「職場関係には喪中はがきを出す。友人には賀状を出す。親類には賀状を出さない。」これを図に表すと次の図31.2のようになります。

図31.2 補集合の例,年賀と喪中

図31.2 補集合の例,年賀と喪中

図31.2で淡いオレンジ色の部分が年賀状を送る人々です。友人の集合の中で,年賀を出す部分は,喪中の補集合になっています※2)。

※1)
全体集合を強調する必要のない場合は,四角で囲むのみで記号Uを省略することもあります。
※2)
数式的に表現すると次のようになります。(今年年賀を出す人の集合)(友人の集合)かつ(喪中ではない)です。このような集合の数式表現の具体的な方法については,後日詳しく学びましょう。

著者プロフィール

平田敦(ひらたあつし)

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

コメント

コメントの記入