- SW 개발에 있어 수학은 광범위하게 적용되며, 특히 알고리즘, 자료구조, AI 등을 학습하기 위한 기초 분야이다
대수학
멱등성
- 대수학의 범주론에서, 어떤 범주 내 사상 f가 f∘f=f 를 만족하면, 이 사상을 멱등사상이라 한다
- 프로그래밍에선, 연산이 같은 입력에 대해 여러번 적용되어도 결과가 동일한 성질을 의미한다
- DB Insert 같은 경우, 동일한 입력으로 여러번 호출하면 여러개 데이터가 들어가기에 멱등성이 없지만, Insert 내 Conflict 조건을 넣으면 동일한 입력으로 동일한 결과를 가질 수 있게 된다
이산수학
순열과 조합
- 순열 : Permutation, 서로 다른 n개 원소 중 r개를 선택하여 나열할 수 있는 모든 경우의 수
- P(n, r) = n! / (n - r)!
- n!은 모든 원소를 사용하는 순열 수, (n - r)!은 선택되지 않은 원소 수
- 순서가 결과에 영향을 미치며 같은 숫자여도 위치가 다르면 다른 경우로 취급한다
- ex) [1,2,3] 중 2개를 선택한 순열 수
- 3! / (3 - 2)! = 6
- [1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]
- 조합 : Combination, 서로 다른 n개 원소 중 r개를 순서 상관없이 선택하는 방법 갯수
- C(n, r) = n! / (r! * (n - r)!)
- n!은 모든 경우의 수, r!은 선택한 순열 갯수, (n - r)!은 선택되지 않은 순열
- 순열과 다르게 순서를 고려하지 않기에 같은 원소의 다른 순서여도 동일한 조합으로 간주한다
- ex) [1,2,3] 중 2개를 선택한 조합 수
- 3! / (2! * (3 - 2)!) = 3
- [1, 2], [1, 3], [2, 3]