1.1 セットとの出会い
セットの定義はプログラミングに数学から取り入れられたものだよ。 セットってのはユニークな要素の集まりってこと。これが あるからこそ、セットはプログラミングにおいて強力なツールで、多くのユニークな可能性を持っているんだ。
ユニークな要素の集まりって何?例えば「国で最も人気のある10の名前のリスト」を想像してみて。 このリストに載っている名前はすべてユニークなもので、重複しないんだよ。名前を持っている人はたくさんいるけどね。
それか、切手コレクションを想像してみて。各国から1枚ずつ切手を集めているんだ。 君のコレクションはユニークな切手のセットで、同じ切手を2枚持ちたくないんだよね。これがセットの考え方だね。
セットの主な特徴
ユニーク性
セットはユニークなアイテムの集まりだよ。例えば、顧客の電話番号リストがあって、その番号は重複したくないよね。何度も電話したくないし。
順序付けなし
セットはアイテムの順序を気にしないんだ。果物をバスケットに入れるみたいに、下に何があっても気にしない感じ。重要なのは、すべての果物が異なるということだよ。
変更可能性
セットにはアイテムを追加したり削除したりできるよ。新しい果物をバスケットに入れたり、もういらない果物を取り除いたりするようなもんだね。
1.2 セットでの操作
セットは大きな要素の集まりとして、様々な操作ができるんだ。ここに4つの一般的な操作を紹介するね:
- 和 (Union): 2つのセットを合わせた結果には、両方のセットからのすべてのユニークな要素が含まれるよ。
- 交差 (Intersection): 2つのセットの交差の結果には、両方のセットに存在する要素のみが含まれるよ。
- 差 (Difference): 2つのセットの差の結果には、最初のセットにあって2番目のセットにない要素が含まれるよ。
- 対称差 (Symmetric Difference): 2つのセットの対称差の結果には、どちらか一方のセットにあって両方にない要素が含まれるよ。
セットの操作を覚えるのに役立ついいイラストがあるよ:
和 (Union):
セットAとBの和の結果には、両方のセットからのすべてのユニークな要素が含まれるよ。
交差 (Intersection):
2つのセットの交差の結果には、両方のセットに存在する要素のみが含まれるよ。
差 (Difference):
2つのセットの差の結果には、最初のセットにあって2番目のセットにない要素が含まれるよ。
対称差 (Symmetric Difference):
2つのセットの対称差の結果には、どちらか一方のセットにあって両方にない要素が含まれるよ。
1.3 セットの特徴
セットはその特性だけじゃなくて、特定の操作のセットでも有名なんだ。
ユニークなコレクション
君が有名人のサインを集めていると想像してみて。コレクションの中では、各サインが唯一のものにしたいよね。もし好きな俳優のサインを持っているなら、同じものを二度集めたりしないんだ。君のサインコレクションはユニークなサインのセットなんだ。
重複の削除
例えば、パーティのゲストリストを作ったときに、誤って何人かのゲストを重複して記入しちゃった場合ね。各ゲストが一度だけ招待されることを確認するには、ゲストのセットを作ればいいんだ。セットにすることで、ユニークな名前だけが残り、重複がなくなるんだよ。
存在確認
君がいろんな種類の宝物を集めるゲームをプレイしていると想像してみて。各宝箱にはセットの中のどれかがあるんだ。ある特定の宝物をすでに見つけたかどうかを知りたいときは、君の宝物のセットにそれがあるか確認すればいいんだ。
グループの統合
学校の友達のリストとスポーツクラブの友達のリストがあると想像してみて。それらを1つのセットにまとめることで、重複のないユニークな友達のリストができるんだ。これで、どれだけのユニークな友達がいるかがわかるよ。
GO TO FULL VERSION