集合論
TypeScriptを勉強する前にちょっとばかし集合論について復習です。
集合論とは、値の集まり、例えば数値の集まりなどを扱う数学の分野(?)で、その値の集まりの性質などを扱います。
TypeScriptでは集合論が密に関わっていて、集合論の言葉で言い表すとTypeScriptのルールを簡潔にすることができます。
ここで必要なのは集合論の中でも基礎中の基礎、簡単な部分だけなのであまり身構えずに聞いてもらえればなと思います。
定義 集合(Set)
集合(Set)とは、値の集まりのことである。
たとえば"one", 2, "three" のみを含む集合は以下のようにして表す。
集合とは値の集まりを表現するものであり、順番に意味はないため以下のようにしても上と同じである(=で結んでもOK)。
集合は以下の様な「値を囲む枠線(区域)」として図に表されることが多い。
定義 要素(元)(Element)
集合の中に入っている値一つ一つを要素(Element)という。また、元とも呼ばれる。
ある値eが集合Sの要素(元)であることを以下のように表す。
例)
定義 空集合(Empty set)
要素の個数が0個である集合を空集合と呼ぶ。 この時、単純にと書いたり、特別にもしくはと書いたりする。
定義 部分集合(Sub set)
任意の値xが集合Aの要素であるならば集合Bの要素でもある時、AはBの部分集合(Subset)といい、以下のように表す。
数学的な記法で定義を書くならこんな感じ。
の図を書くならこう。
定理
空集合は任意の集合の部分集合である。
定義 集合の等しさ(Equality)
集合があって、かつである時、とは等しいといい、で表す。
より厳密に数学的な記法で定義を書くならこんな感じ。言っていることは上と同じこと。
難しく考えず言えば、普通にAとB中身が同じということです。
(図にする上でBがAの中にあるかの様に書きましたがそこに意味はなく、AとBの間に要素がないことが重要です)
定義 和集合(Union)
二つの集合 A, B に対して とおいて、これをAとBの和集合という。
例として、なら
以下が成り立つ。
- 結合律(法則):
- 交換律(法則):
定義 交叉(共通部分)(Intersection)
二つの集合A, Bに対して とおいて、これをAとBの交叉という。
例として、なら
以下が成り立つ。
- 結合律(法則):
- 交換律(法則):
練習問題
特に提出とかは求めません。解いてみて、答えを見て、理解できているか確認してみてください。
間違っていて、理解ができないのであれば、講師に質問してみるべきなのかもしれませんね。
- 問題
- 答え
集合についてを図に表してください
- 問題
- 答え
集合についてを図に表してください
- 問題
- 答え
「 は の部分集合である」は真か偽か
偽
証明)反例をあげる。4はの要素であるがの要素でないため部分集合の定義を満たさない。よって偽。
- 問題
- 答え
であることを確認してください(証明の必要はありません)
確かめられたならそれでOKです。