책소개
사회와 기술이 발전하고, 복잡해짐에 따라 문제를 명확히 파악할 수 있도록 모델링하고, 해결책을 제시할 수 있는 수학의 중요성이 커지고 있다. 컴퓨터 분야도 예외가 아니어서 단순히 프로그램을 작성하는 초기 단계를 벗어나서 문제를 효과적으로 모델링하고, 해결 방법을 찾기 위해서 수학을 활용하는 경우가 많아지고 있다. 특히, 인공지능이나 기계학습이 대두되면서 컴퓨터 분야에서 수학의 중요성이 증대되고 있다.
이 책에서는 컴퓨터 분야에서 필요로 하는 이산 수학의 주제(집합, 관계, 행렬, 함수, 그래프, 트리, 확률 등)를 다루고 있다. 특히 최근 인기를 끌고 있는 인공지능 분야에서 많이 활용되고 있는 행렬, 함수, 미분, 확률의 개념 등을 책에서 언급함으로써 향후 기계학습 혹은 신경망 등을 배울 때 수학적으로 기본적인 개념에서 어려움이 없도록 하였다.
이 책은 수학 개념과 관련된 프로그램 예제를 두어서 컴퓨터와 연계성을 찾을 수 있도록 하였다. 프로그램 언어는 주로 파이썬을 사용하도록 하였고, 일부 C 언어와 프롤로그(Prolog) 언어를 사용하도록 하였다. 이 책으로 공부하는 컴퓨터 전공자가 교과목에서 배운 수학들이 실제 컴퓨터 영역에서 어떻게 활용되는지 구체적으로 배울 수 있는 기회가 되길 바란다.
목차
차 례
1. 이산수학 실습을 위한 프로그래밍 기초 1
1.1 이산수학 실습을 위한 컴퓨터 환경 설정 1
1.2 파이썬 연산자 사용하기 7
1.3 파이썬 언어 제어문 14
1.4 기타 21
2. 수 체계와 컴퓨터에서 수의 표현 33
2.1 수를 표현하는 방법 : 기수법 33
2.2 수학에서 수의 분류 39
2.3 컴퓨터에서 수와 문자 표현 45
2.4 연산과 연산의 성질 59
3. 명제와 술어 논리 69
3.1 명제 논리 개념 69
3.2 명제와 논리 연산자 71
3.3 논리적 동치 78
3.4 술어 논리 82
3.5 술어 논리와 문장 표현 90
3.6 추론 92
3.7 프로그램과 논리 92
3.8 논리 기반 프로그래밍 언어 98
4. 행렬과 행렬 응용 105
4.1 행렬 개념 105
4.2 행렬 기본 연산 109
4.3 행렬의 종류 117
4.4 행렬식과 역행렬 121
4.5 행렬 응용 : 선형연립방정식 128
4.6 행렬 곱셈 응용 : 마코브 행렬 135
4.7 컴퓨터에서 행렬 계산 141
5. 집합과 집합 응용 153
5.1 집합 개념 153
5.2 집합 사이의 관계 157
5.3 집합의 연산 162
5.4 집합 연산의 특성 168
5.5 튜플과 분할 170
5.6 컴퓨터에서 집합 활용 173
6. 관계와 관계의 표현 187
6.1. 관계 개념 187
6.2 이항관계와 n항 관계 189
6.3 관계의 성질 197
6.4 관계 연산 203
6.5 관계 폐포 210
6.6 관계의 예 1: 동치 관계 213
6.7 관계의 예 2: 순서 관계 214
6.8 컴퓨터에서 관계 216
7. 함수와 미분 221
7.1 함수 개념 221
7.2 함수 합성과 역함수 226
7.3 실 함수 231
7.4 함수 개념 확대 241
7.5 함수 미분 248
7.6 컴퓨터에서 함수 253
8. 그래프와 그래프 응용 265
8.1 그래프 개념과 관련 용어 265
8.2 그래프 종류 273
8.3 그래프 연산 283
8.4 그래프 표현 288
8.5 그래프 탐색 알고리즘 290
8.6 그래프 컴퓨터 표현 295
9. 트리와 트리 응용 307
9.1 트리 개념 및 용어 307
9.2 이진 트리 311
9.3 신장 트리 321
9.4 의사결정 트리 329
9.5 컴퓨터에서 트리 335
10. 경우의 수와 확률 347
10.1 경우의 수 세기 347
10.2 확률 개념 356
10.3 확률 분포 359
10.4 조건부 확률과 베이스 정리 366
10.5 확률과 컴퓨터 377