본문 바로가기

📌 SW전공-개념/이산구조

[이산구조 개념-14] 함수의 기초 — 입력하면 출력된다, 매핑 머신의 수학

1. 함수(Function)란 무엇인가

정의

함수는 두 집합 A와 B에 대해, A의 각 원소를 B의 원소 중 단 하나에 대응시키는 규칙이다.

핵심 슬로건

"입력하면, 출력된다!"

함수는 입력값을 받으면 특정 규칙에 따라 단 하나의 출력값을 생성하는 매핑 머신(Mapping Machine) 이다.

자판기 비유

자판기에서 콜라 버튼을 누르면(입력) → 콜라가 나온다(출력). 같은 버튼을 눌렀는데 어떤 날은 콜라, 어떤 날은 사이다가 나오면? 그건 함수가 아니다.

함수의 3대 단계

단계설명예시 (f(x) = x²에서 x=2)
입력 (Input) 정의역의 원소 2
규칙 적용 정의된 변환 2² 계산
출력 (Output) 공역의 원소 (단 하나) 4

미적분학 vs 이산수학의 함수 차이 ⭐

구분미적분학의 함수이산수학의 함수
입력/출력 숫자만 (실수 ℝ) 임의의 객체 (숫자 아니어도 됨)
예시 f(x) = x² 학생 → 성적, 단어 → 번역
범위 좁음 매우 넓음

💡 핵심 통찰: 이산수학은 "숫자가 아닌 것들" 사이의 매핑까지 함수로 다룬다. 학생→성적, URL→웹페이지, 사람→주민번호 — 모두 함수다.


2. 함수의 가장 중요한 규칙 — "단 하나만(Exactly One!)" ⭐

함수가 함수이기 위해 만족해야 할 단 한 가지 절대 규칙이다.

A의 각 원소는 B의 원소 중 정확히 하나에 대응된다.

함수 vs 함수 아님 — 비교 예시

매핑 상황함수인가?이유
학생 → 그 학생의 학번 ⭕ 함수 한 학생당 학번 하나
학생 → 그 학생이 듣는 과목 ❌ 함수 아님 학생이 여러 과목 들음
사람 → 그 사람의 친한 친구 ❌ 함수 아님 친구가 여러 명일 수 있음
한국 시민 → 주민등록번호 ⭕ 함수 한 명당 번호 하나
영어 단어 → 한국어 번역 단어에 따라 번역 여러 개 가능 (모호)

핵심 키워드

"한 명당 하나" 또는 "한 입력당 하나의 출력"

이 조건만 만족하면 함수다.


3. 부분함수(Partial Function) — 느슨한 형제

정의

정의역 A의 각 원소에 대해 공역 B의 원소를 0개 또는 1개만 대응시키는 관계.

일반 함수 vs 부분함수 비교

구분일반 함수 (Total Function)부분함수 (Partial Function)
대응 개수 정확히 1개 0개 또는 1개
슬로건 "Exactly one!" "Zero or one!"
정의역 활용 모든 원소 대응 필수 일부 원소만 대응 가능

자판기 비유

상황일반 함수부분함수
콜라 버튼 → 콜라 항상 음료 나옴 품절일 수 있음
사이다 버튼 → 사이다 항상 음료 나옴 품절일 수 있음
환타 버튼 → 환타 항상 음료 나옴 품절일 수 있음

💡 컴퓨터 과학에서의 의미: 모든 입력에 대해 항상 결과를 반환하지 않는 함수(예: 0으로 나누기 시 정의되지 않음)는 부분함수다. 예외 처리·null 반환 등의 개념이 여기서 비롯된다.


4. 함수의 그래픽 표현 ⭐

복잡한 함수 관계는 그림으로 보면 직관적으로 이해된다. 두 가지 표준 표현 방식이 있다.

방법 ① 이분 그래프(Bipartite Graph)

두 집합 A와 B를 각각 노드(점) 로 표현하고, 함수 관계를 직선 화살표로 연결.

 
 
   집합 A          집합 B
    a ●─────────● 1
    b ●─────────● 2
    c ●─────────● 3
    d ●─────────● 4

규칙: 정의역 A의 각 노드에서 화살표는 정확히 하나만 나가야 함 (함수 조건)

방법 ② 벤 다이어그램(Venn Diagram)

각 집합을 덩어리(원) 로 그리고, 원소들 간을 곡선 화살표로 연결.

 
 
  ┌──────────┐         ┌──────────┐
  │  • a ────┼─────────┼→ • 1     │
  │  • b ────┼─────────┼→ • 2     │
  │  • c ────┼─────────┼→ • 3     │
  │  (집합A) │         │  (집합B) │
  └──────────┘         └──────────┘

두 표현 방식 비교

항목이분 그래프벤 다이어그램
시각 효과 깔끔, 정렬 집합의 범주 강조
적합한 경우 매핑 관계 위주 집합 포함 관계 위주
직관성 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐

💡 함수 판별 핵심: 어떤 그림을 보고 함수인지 판별할 때는 "정의역의 모든 노드에서 화살표가 정확히 하나씩만 나가는가?" 만 확인하면 된다.


5. 정의역·공역·치역 ⭐⭐⭐ 시험 핵심

함수의 '범위'를 정의하는 3대 개념이다. 이 셋의 차이를 명확히 구분하는 것이 14강의 핵심.

3가지 정의

개념영문정의
정의역 Domain 함수에 입력될 수 있는 모든 원소의 집합
공역 Codomain 함수가 만들어낼 수 있는 가능한 모든 출력의 집합
치역 Range 실제로 매핑이 일어난 공역 원소들의 집합

식당 메뉴판 비유

비유함수 개념
식당이 가진 모든 재료 정의역 (입력 가능)
식당의 전체 메뉴판 공역 (잠재적 결과)
손님들이 실제로 주문해 만든 요리 치역 (실제 결과)

모든 메뉴가 주문되는 건 아니므로, 치역 ⊆ 공역


6. 치역 ⊆ 공역 — 가장 헷갈리는 관계 ⭐

핵심 원칙

치역은 항상 공역의 부분집합이다.

Range ⊆ Codomain

치역이 공역과 같을 수도 있지만, 반드시 같지는 않다.

성적 부여 예시 ⭐

함수 f: 학생 → 성적

시점상황
시작 시점 공역 = {A, B, C, D, E} (받을 수 있는 모든 성적)
시험 후 결과 모든 학생이 A 또는 B만 받음
결론 치역 = {A, B}, 공역 = {A, B, C, D, E} (그대로 유지)

C, D, E는 받을 수 있었지만 실제로 아무도 받지 못함 → 공역에는 있지만 치역에는 없음

시각적 이해

 
 
공역: {A, B, C, D, E}
       │  │  │  │  │
       ✓  ✓  ✗  ✗  ✗   (실제 사용 여부)
       └──┴────────────  → 치역: {A, B}

⚠️ 시험 함정 1순위: "치역 = 공역" 이라고 적으면 틀린다. 치역은 공역의 부분집합이며, 같을 수도 있고 더 작을 수도 있다.


7. 원상(Pre-image)과 상(Image)

정의

함수 f에서 a ∈ A가 b ∈ B에 매핑될 때:

용어영문정의
Image a의 상 = b (a가 보내진 곳)
원상 Pre-image b의 원상 = a (b로 보내진 출발점)

예시

함수 f: f(2) = 4, f(3) = 4

질문답
2의 상은? 4
3의 상은? 4
4의 원상은? 2와 3 (둘 다 가능)

상 vs 원상 비교

항목상 (Image)원상 (Pre-image)
방향 정의역 → 공역 공역 → 정의역
개수 정확히 1개 (함수 규칙) 여러 개 가능
비유 "어디로 갔는가" "어디서 왔는가"

💡 시험 핵심: 함수 규칙상 "상은 1개"지만, "원상은 여러 개일 수 있다". 이 비대칭이 단사함수(15강)의 정의 근거가 된다.


8. 부분집합의 상 (Image of S under f)

정의

정의역의 부분집합 S에 속하는 모든 원소들의 상을 모아놓은 집합.

f(S) = { f(s) | s ∈ S }

비유

식당의 '채식 메뉴'(부분집합 S)를 모두 주문했을 때, 실제로 나오는 요리들(부분집합의 상 f(S))을 모은 것.

예시

함수 f: f(b) = 1, f(c) = 4, f(d) = 1

부분집합 S = {b, c, d}일 때:

원소상
b 1
c 4
d 1

f(S) = {1, 4} (1은 중복이지만 집합이므로 한 번만)

핵심 성질

성질설명
f(S) ⊆ B 부분집합의 상은 항상 공역의 부분집합
중복 제거 집합이므로 같은 상은 한 번만 표기
f(A) = 치역 정의역 전체의 상이 곧 치역

💡 공식화: 정의역 전체 A에 대한 상 f(A)가 바로 치역(Range) 이다. 즉, 치역은 "정의역 전체에 대한 부분집합의 상"의 특수한 경우다.


9. 함수 판별 종합 — 시험 빈출 패턴

다음과 같은 다이어그램을 보고 함수인지 판별하는 문제가 시험에 자주 나온다.

판별 기준 3가지

기준함수 조건
정의역의 모든 원소에서 화살표가 나감
정의역의 각 원소에서 화살표가 정확히 하나만 나감
화살표가 공역 안의 원소를 가리킴

함수 판별 케이스별 정리

다이어그램 상황함수?설명
정의역 모든 원소에서 화살표 1개씩 ⭕ 함수 모든 조건 만족
정의역 한 원소에서 화살표 2개 ❌ 함수 아님 출력이 2개 (Exactly one 위반)
정의역 한 원소에서 화살표 0개 ❌ 함수 아님 (부분함수 가능) 정의역 미사용
다른 정의역 원소들이 같은 공역 원소 가리킴 ⭕ 함수 가능 (단사 X, 함수는 O)

"함수이지만 단사가 아닌 경우" 시각화

 
 
   A          B
   1 ─────→  X
   2 ─────→  X    ← 둘이 같은 곳 가리켜도 함수
   3 ─────→  Y

이는 함수다. 단, 단사함수는 아니다 (15강에서 자세히).


10. 함수 표기법 정리

표준 표기

표기의미
f: A → B 함수 f는 A에서 B로의 함수
f(a) = b a의 상은 b
a ↦ b a를 b에 대응 (또 다른 표기)

함수 묘사 예시

"f: ℝ → ℝ, f(x) = x²"

분석내용
함수 이름 f
정의역 ℝ (모든 실수)
공역 ℝ (모든 실수)
규칙 입력을 제곱
치역 [0, ∞) — 음수는 결과로 안 나옴

💡 위 예에서 공역 = ℝ이지만 치역 = [0, ∞) 이다. 음수는 절대 결과로 나오지 않으므로 치역이 더 작다. 이런 패턴이 시험에 자주 나온다.


📌 한눈에 보는 핵심정리

개념핵심
함수(Function) A의 각 원소를 B의 원소 중 단 하나에 대응
함수의 절대 규칙 "Exactly one!" — 입력당 출력 정확히 1개
부분함수 "Zero or one!" — 0개 또는 1개 대응
그래픽 표현 이분 그래프, 벤 다이어그램
정의역(Domain) 입력 가능한 모든 원소
공역(Codomain) 출력 가능한 모든 원소
치역(Range) 실제로 매핑된 공역 원소들
핵심 관계 치역 ⊆ 공역 (같지 않을 수 있음)
상(Image) a → b일 때, b는 a의 상
원상(Pre-image) a → b일 때, a는 b의 원상
상의 개수 정확히 1개
원상의 개수 여러 개 가능
부분집합의 상 f(S) = {f(s) | s ∈ S}
표기 f: A → B, f(a) = b

🧠 예상문제 2제

문제 1. 함수 판별

다음 매핑 중 함수가 아닌 것은?

① 학생 → 그 학생의 생일 ② 자연수 → 그 수의 제곱 ③ 사람 → 그 사람의 형제자매 ④ 한국인 → 그 사람의 주민등록번호

👉 정답: ③

각 매핑 분석:

번호매핑함수?이유
학생 → 생일 한 명당 생일 하나
자연수 → 제곱 한 수당 제곱값 하나
사람 → 형제자매 형제자매가 0명, 1명, 또는 여러 명일 수 있음
한국인 → 주민번호 한 명당 주민번호 하나

💡 함수 판별 핵심: "한 입력에 출력이 정확히 하나"인지 확인. 형제자매는 0명일 수도, 5명일 수도 있어 함수의 "Exactly one" 조건을 위반한다. 이런 경우는 함수가 아니라 관계(Relation) 로 표현한다 (다음 단원).


문제 2. 정의역·공역·치역 구분

함수 f: ℝ → ℝ, f(x) = x² + 1에 대해 다음 중 올바른 설명은?

① 정의역과 치역은 같다 ② 공역은 [1, ∞)이다 ③ 치역은 [1, ∞)이고, 치역은 공역의 진부분집합이다 ④ 치역은 (−∞, ∞)이다

👉 정답: ③

분석:

항목분석
정의역 ℝ (문제에서 주어진 입력 집합)
공역 ℝ (문제에서 주어진 출력 가능 집합)
실제 출력 범위 x² ≥ 0 → x² + 1 ≥ 1 → 결과는 항상 1 이상
치역 [1, ∞)
치역 vs 공역 [1, ∞) ⊂ ℝ → 치역은 공역의 진부분집합

각 선택지 분석:

번호분석
정의역 ℝ, 치역 [1, ∞) — 같지 않음 ❌
공역은 문제에서 ℝ로 주어짐, [1, ∞)는 치역 ❌
치역 = [1, ∞), 공역 = ℝ → 진부분집합
음수와 0 미만 1까지의 값은 출력 불가 ❌

💡 핵심 통찰: 함수를 정의할 때 공역은 "임의로 설정"할 수 있지만, 치역은 함수 규칙에 의해 자동으로 결정된다. 공역을 ℝ로 잡았다고 해서 모든 실수가 결과로 나오는 것은 아니다.