다운로드
작성자: admin 작성일시: 2017-09-16 13:30:22 조회수: 1440 다운로드: 147
카테고리: 기초 수학 태그목록:

집합

확률을 수학적으로 정의하기 위해서는 집합론을 알아야 하므로 여기에서는 집합론의 기초를 간단하게 복습한다.

집합과 원소

구별 가능한 객체의 모임을 집합(set)이라고 하고 집합에 포함된 객체를 그 집합의 원소(element)라고 한다. 집합을 이루는 객체가 반드시 숫자일 필요는 없다. 집합은 보통 알파벳 대문자를 사용하여 표시하고 원소는 알파벳 소문자로 표시한다.

원소 $x$와 그 원소를 포함하는 집합 $A$의 관계는 다음처럼 표시한다. $$ x \in A $$

만약 원소 $x$가 집합 $A$에 포함되지 않는다면 다음처럼 표시한다. $$ x \notin A $$

따라서 만약 $ A = \{ 1, 2, 3 \} $이면, $$ 1 \in A, \;\;\; 4 \notin A $$ 이다.

집합은 반드시 숫자만 포함하는 것은 아니다. 다음처럼 어떠한 원소도 포함할 수 있다.

$$ B = \{ H, T \} $$$$ C = \{ ♦, ♥, ♠, ♣ \} $$

파이썬에서는 setfrozenset 자료형으로 집합을 나타낸다. set은 내용을 변경할 수 있는 뮤터블(mutable)자료형이고 frozenset은 내용을 변경할 수 없는 임뮤터블(immutable)자료형이다. (리스트 자료형과 튜플 자료형의 관계와 같다.) 뮤터블 자료형은 딕셔너리(dictionary) 자료형의 키(key)나 혹은 set 자료형의 원소가 될 수 없다. 임뮤터블 자료형만 딕셔너리 자료형의 키나 set 자료형의 원소가 될 수 있다.

In [7]:
A = set([1, 2, 3, 3, 2])  # 중복된 자료는 없어진다.
A
Out:
{1, 2, 3}
In [8]:
B = frozenset(['H', 'T'])
B
Out:
frozenset({'H', 'T'})
In [8]:
C = set(["\u2660", "\u2663", "\u2665", "\u2666"])
C
Out:
{'♠', '♣', '♥', '♦'}

집합의 크기

집합의 크기(cardinality, 카디널리티)는 집합이 가지는 원소의 갯수를 말한다. $||$ 기호나 $\text{card}$ 기호를 사용하여 나타낸다. 만약 $ A = \{ 1, 2, 3 \} $이면, $$ |A| = \text{card}(A) = 3 $$ 이다.

파이썬에서는 len 명령을 사용하여 구한다.

In [11]:
len(A), len(B), len(C)
Out:
(3, 2, 4)

두 실수 사이에는 항상 다른 실수가 존재하므로 다음과 같은 실수 구간 집합은 무한개의 원소를 가진 집합이다.

$$ A = \{ x: 0 \leq x \leq 1 \} $$

합집합과 교집합

두 집합의 합집합(union)은 각 집합의 원소를 모두 포함하는 집합을 말하고 $\cup$ 기호를 사용하여 표시한다.

$$ A \cup B $$

두 집합의 교집합(intersection)은 두 사건 모두에 속하는 원소로만 이루어진 집합을 말하고 $\cap$ 기호를 사용하여 표시한다.

$$ A \cap B $$

파이썬에서는 union, intersection 메서드나 |, & 연산자를 사용하여 합집합과 교집합을 구할 수 있다.

In [21]:
A1 = set([1, 2, 3, 4])
A2 = set([2, 4, 6])
A3 = set([1, 2, 3])
A4 = set([2, 3, 4, 5, 6])
In [22]:
A1.union(A2)
Out:
{1, 2, 3, 4, 6}
In [23]:
A2 | A1
Out:
{1, 2, 3, 4, 6}
In [24]:
A3.intersection(A4)
Out:
{2, 3}
In [25]:
A4 & A3
Out:
{2, 3}

전체집합, 부분집합, 여집합

어떤 집합의 원소 중 일부만을 포함하는 집합을 부분집합(subset)이라고 하고 원래의 집합을 전체집합이라고 한다. 집합 $A$가 집합 $\Omega$의 의 부분집합이면 다음처럼 표시한다.

$$ A \subset \Omega $$

모든 집합은 자기 자신의 부분집합이다. 원소의 크기가 더 작은 부분집합을 진부분집합(proper subset)이라고 한다.

파이썬에서는 두 집합이 부분집합인지를 알아보는 issubset 메서드가 있다. 객체가 인수의 부분집합이면 True를 반환한다. 등호를 포함하는 부등식 연산자로도 같은 결과를 구할 수 있다. 더 작은 쪽이 부분집합이다. 등호가 없는 부등식 연산자는 진부분집합 관계를 구한다.

In [34]:
A3.issubset(A1)
Out:
True
In [41]:
A3 <= A1
Out:
True
In [32]:
A3.issubset(A2)
Out:
False
In [47]:
A3 <= A2
Out:
False
In [46]:
A3 <= A3  # 모든 집합은 자기 자신의 부분집합이다.
Out:
True
In [45]:
A3 < A3  # 모든 집합은 자기 자신의 진부분집합이 아니다.
Out:
False

차집합과 여집합

어떤 집합 $A$에 속하면서 다른 집합 $B$에는 속하지 않는 원소로 이루어진 $A$의 부분집합을 $A$에서 $B$를 뺀 차집합(difference)이라고 하며 $$ A-B $$ 로 나타낸다.

전체집합 $\Omega$ 중에서 부분집합 $A$에 속하지 않은 원소로만 이루어진 부분집합을 여집합이라고 하고 윗첨자 $C$(complement)를 사용하여

$$A^C$$

로 표시한다. 여집합 $A^C$은 전체집합에서 집합 $A$를 뺀 차집합과 같다.

$$ A^C = \Omega - A $$

파이썬에서는 difference 메서드 혹은 - 연산자로 차집합을 구한다.

In [49]:
A1.difference(A2)
Out:
{1, 3}
In [48]:
A1 - A2
Out:
{1, 3}

공집합

아무런 원소도 포함하지 않는 집합을 공집합(null set)이라고 하며 $\emptyset$ 기호로 나타낸다.

공집합은 모든 집합의 부분집합이 된다.

$$ \emptyset \subset A, \;\text{ for all } A $$

또한 임의의 집합과 공집합의 합집합은 공집합이, 임의의 집합과 공집합의 합집합은 그 집합 자신이 된다.

$$ A \cap \emptyset = \emptyset $$$$ A \cup \emptyset = A $$

여집합과 원래의 집합의 교집합은 공집합이다.

$$ A \cap A^C = \emptyset $$
In [52]:
nullset = set([])
nullset
Out:
set()
In [54]:
nullset < A1
Out:
True
In [51]:
nullset.intersection(A1)
Out:
set()
In [53]:
nullset.union(A1)
Out:
{1, 2, 3, 4}

부분집합의 수

집합 $A = \{ 1, 2 \}$는 다음과 같은 4개의 부분집합을 가진다.

$$ A_1 = \emptyset $$$$ A_2 = \{ 1 \} $$$$ A_3 = \{ 2 \} $$$$ A_4 = \{ 1, 2 \} $$

일반적으로 원소의 갯수가 $N$개인 집합은 $2^N$개의 부분집합을 가진다. 부분집합을 만들때 우리가 결정할 수 있는 것은 어떤 원소가 만들고자 하는 부분집합에 포함시키느냐 포함시키지 않느냐이다. $N$개의 원소 모두에 대해 이러한 의사 결정을 하면 우리가 할 수 있는 결정의 가짓수 즉, 부분집합의 종류는 $2^N$개가 된다.

연습 문제 1

다음 집합의 부분 집합을 생각한다.

$$ \Omega = \{ HH, HT, TH, TT \} $$
  1. 이 집합의 부분 집합의 갯수는?
  2. 이 집합의 모든 부분집합을 frozenset 자료형 객체로 만들고 이를 원소로 가지는 set 객체를 만든다.

합집합과 교집합의 분배 법칙

곱셈과 덧셈의 분배 법칙은 다음과 같다.

$$ a \times (b + c) = a \times b + a \times c $$

곱셈과 덧셈의 분배 법칙처럼 교집합과 합집합도 괄호를 풀어내는 분배법칙이 성립한다.

$$ A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C) $$$$ A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C) $$

연습 문제 2

다음 세 집합 $A$, $B$, $C$에 대해 위에서 말한 두가지 분배법칙이 성립하는지 파이썬 코드로 증명하라.

$$ A = \{ 1, 3, 5 \} $$$$ B = \{ 1, 2, 3 \} $$$$ C = \{ 2, 4, 6 \} $$

질문/덧글

아직 질문이나 덧글이 없습니다. 첫번째 글을 남겨주세요!