포스트

[CM201] 01. 이산수학에 대해 알아보자

[CM201] 01. 이산수학에 대해 알아보자

컴퓨터 과학에서 빠뜨릴 수 없는 중요한 분야에 대해 이야기하려고 합니다.

바로 이산수학이죠.

image1

이산수학이란게 무엇일까?

이산수학(Discrete Mathematics)은 연속적이지 않은 대상들을 다루는 수학 분야입니다. 즉, 실수처럼 끊임없이 이어지는 값이 아니라 셀 수 있고 구분 가능한 구조를 다루는 것이죠. 때문에 유한수학이라고도 하며, 컴퓨터 과학의 맥락을 강조하고 싶을 때는 전산수학이라고 부르기도 합니다.

image2

 여러분이 컴퓨터의 비밀번호를 설정한다고 합시다. 0에서 9까지의 숫자를 사용해 여섯 자리의 번호를 입력하라고 하네요. 당장 생각나는 아무 숫자들이 있을겁니다. 이것들은 모두 ‘0에서 9사이’라는 특별한 조건을 따르고, 여러분은 이 규칙 외의 새로운 비밀번호를 만들 수 없습니다. 12346과 123457사이에 새로운 번호를 만들 순 없잖아요.

image3

 그 외에도 집에서 학교까지 버스만을 이용해서 도착할 수 있는 방법의 수, 책장에 책을 사전순으로 정렬할 때 필요한 행동의 수, 로또 1등에 당첨될 확률 등 일상의 다양한 경우를 이산수학으로 설명할 수 있습니다.

image4

 예시에서 알 수 있듯이, 이산적이다라는 표현은 연속적이다라는 표현의 반대말입니다. 무한하고 세밀하게 나눌 수 없고, 하나씩 끊어서 셀 수 밖에 없으니까요.

이산수학이 왜 중요할까?

 그러면 우리는 왜 컴퓨터 과학에 대해 공부하면서 이산수학을 알아야 할까요? 왜냐하면, 컴퓨터라는 것은 본질적으로 이산적인 기계이기 때문입니다. 컴퓨터는 0과 1이라는 딱 떨어지는 두 수를 이용해 데이터를 저장하고, 데이터가 저장할 수 있는 구조는 유한하게 제한되어 있으며, 컴퓨터의 문제 해결과정을 한 단계씩 절차를 밟는 알고리즘을 따릅니다. 그렇기 때문에 오늘날 이산수학은 컴퓨터 과학의 거의 모든 분야에서 이론적 기반으로 자리잡게 되었습니다. 어쩌면 이산수학을 익히는 것이 컴퓨터 과학도에게 필수요소라고 할 수 있겠습니다.

엄밀히 말하자면, 컴퓨터 과학을 위한 이산수학은 순수 학문으로서의 이산수학만큼 깊고 심오하지 않습니다! 우리는 극히 일부만을 배워도 괜찮으니, 수학에 대한 근원적 공포는 내려놓아도 무방합니다…


 이제 천천히, 이산수학의 여정을 떠나보도록 합시다!

image5

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.