이산수학 함수 쉽게 이해하기: 정의역 공역 치역과 단사 전사

··설명 약 5분·작성: 해비·블로그 소개

함수의 정의역·공역·치역과 단사·전사는 무엇인가요?

함수는 입력 하나에 출력 하나를 대응시킵니다. 넣을 수 있는 값은 정의역, 출력 후보는 공역, 실제 나온 값은 치역이며 단사·전사는 이 대응의 모양을 구분하는 조건입니다.

적용 조건·범위: pairs가 각 정의역 원소를 한 번씩 포함하는 함수라고 주어진 상황에서 출력의 중복을 확인합니다. 코드 자체가 함수 조건이나 전사성을 모두 검사하는 것은 아닙니다.

공식 문서 참고: MIT 함수의 정의역·공역·치역과 단사·전사(4.3·4.4절)

핵심 정의와 기호

함수 f:A→B는 정의역 A의 모든 원소에 공역 B의 원소를 정확히 하나씩 대응하는 관계입니다. 치역 f(A)는 실제 출력의 집합이며 B의 부분집합입니다.

기호·성질 읽는 법과 조건
f:A→B A에서 B로 가는 함수 f
f(x) x에 대응한 함수값
단사 f(x)=f(y)이면 x=y
전사 공역 B의 모든 b에 f(x)=b인 x가 존재
전단사 단사이면서 전사
(g∘f)(x) 먼저 f, 다음 g: g(f(x))

합성은 f의 출력이 g의 정의역에 들어갈 때 가능합니다.

가장 작은 예제

다음 대응에서 A={1,2,3}, B={a,b,c}입니다.

입력 x 출력 f(x)
1 a
2 b
3 c

각 입력의 출력이 하나이고 서로 겹치지 않으며 B를 모두 사용하므로 전단사입니다. 대응을 그대로 두고 공역만 {a,b,c,d}로 바꾸면 단사이지만 전사는 아닙니다.

정의역 A의 1, 2, 3이 공역 B의 a, b, c에 각각 하나씩 대응하는 함수 그림
1→a, 2→b, 3→c. 서로 다른 입력의 출력이 다르고 공역의 모든 원소에 대응하므로 전단사입니다. 도식 원본 크게 보기

헷갈리는 반례

입력 1에 a와 b를 동시에 대응하면 함수가 아닙니다. 반면 1→a,2→a는 함수일 수 있지만 단사는 아닙니다. 서로 다른 입력의 출력 중복은 ‘함수 아님’과 다릅니다.

손으로 풀어보기

f:ℤ→ℤ, f(x)=x²에서는 f(1)=f(−1)=1이므로 단사가 아닙니다. −1은 제곱 결과가 될 수 없어 전사도 아닙니다. 정의역을 0 이상의 정수로, 공역을 {0,1,4,9,…}로 바꾸면 전단사가 됩니다.

합성 연습: f(x)=x+1, g(x)=2x이면 (g∘f)(3)=g(4)=8, (f∘g)(3)=f(6)=7입니다. 적용 순서가 다르면 결과도 달라집니다.

선택: JavaScript로 검산하기

코드 직접 실행

본문 예제를 선택하고 실제 계산 결과를 확인합니다.

예제 크게 보기 (새 탭)

손풀이 뒤 선택해서 실행하는 짧은 전체 코드입니다. 브라우저 Console 또는 Node.js가 준비된 환경의 check.mjs에서 실행할 수 있으며 수학 학습에 설치는 필수가 아닙니다.

const pairs = [[1, 'a'], [2, 'b'], [3, 'c']];
const outputs = pairs.map(([, value]) => value);
const injective = new Set(outputs).size === outputs.length;
console.log({ injective });

기대 결과: { injective: true }가 출력됩니다.

pairs가 각 정의역 원소를 한 번씩 포함하는 함수라고 주어진 상황에서 출력의 중복을 확인합니다. 코드 자체가 함수 조건이나 전사성을 모두 검사하는 것은 아닙니다.

자주 발생하는 오해와 교정

두 입력이 같은 출력으로 가도 함수일 수 있습니다. 한 입력의 출력이 둘이면 함수가 아닙니다. 단사라는 이유만으로 전사라 할 수 없고, 공역을 바꾸면 전사성이 달라집니다.

직접 풀어볼 문제와 해설

쉬운 개념

함수는 정의역의 각 입력에 출력이 정확히 하나인 관계입니다. 단사는 서로 다른 입력의 출력이 겹치지 않는지, 전사는 공역의 모든 원소가 실제 출력인지 확인합니다.

단계별 예제

  1. f:{1,2,3}→{a,b,c,d}를 1→a, 2→b, 3→c로 적습니다.
  2. 출력이 모두 달라 단사입니다.
  3. 치역 {a,b,c}가 공역 {a,b,c,d}보다 작고 d가 비어 있으므로 전사는 아닙니다.

직접 풀 문제

g:{1,2,3}→{a,b}, g(1)=a, g(2)=b, g(3)=b는 함수·단사·전사인가요?

정답·해설 보기
  1. 각 입력의 출력이 하나씩 있어 함수입니다.
  2. 2와 3의 출력이 b로 겹쳐 단사가 아닙니다.
  3. 공역의 a와 b가 모두 실제 출력이므로 전사입니다.

다음 학습

6회차에서 함수값을 0·1로 제한하고 논리식을 단순화합니다. 다음 글 읽기

학습 완료 체크리스트

  • 정의의 적용 범위와 기호를 말로 설명할 수 있습니다.
  • 위 손풀이를 답을 가린 상태에서 다시 계산합니다.
  • 반례가 어떤 조건을 어기는지 설명합니다.

알고리즘 수학 노트

누적 이전 체크포인트: discrete-step-04-relation. 아래는 이번 회차의 완성 예시입니다. 자신의 다른 예제 하나를 덧붙여도 좋습니다.

ID를 다른 ID로 변환할 때 두 입력이 같은 출력으로 합쳐지는지 단사 조건으로 질문할 수 있습니다. 허용 출력 타입은 공역, 실제 생성 결과는 치역입니다. 현실 API는 오류·시간·상태도 입력 모델에 포함해야 수학적 함수처럼 설명할 수 있습니다. 대응표와 공역 변경에 따른 전사성 차이를 기록합니다.

완료 체크포인트

discrete-step-05-function

다음 학습

부울대수 쉽게 이해하기: 진리표와 논리게이트 간소화 기준에서 다음 개념을 이어갑니다.

글 소개·학습 준비·전체 목차
입력 공과 출력 블록을 바꾸는 장치로 표현한 함수 표지

이산수학 · 5 / 13

이산수학 함수 쉽게 이해하기: 정의역 공역 치역과 단사 전사

함수는 입력 하나마다 출력 하나를 대응시키는 특별한 관계입니다. 정의역·공역·치역을 구분하고 단사·전사 조건을 읽을 수 있으면 API 입력/출력이나 데이터 변환도 더 정확하게 설명할 수 있습니다.

이번 글에서 배우는 내용

  • 모든 입력에 출력 정확히 하나라는 함수 조건을 설명합니다.
  • 정의역·공역·치역을 구별합니다.
  • 단사·전사와 합성 순서를 작은 표로 판정합니다.

선수 지식

집합·관계·순서쌍을 알아야 합니다.

목차

  1. 핵심 정의와 기호
  2. 가장 작은 예제
  3. 헷갈리는 반례
  4. 손으로 풀어보기
  5. 선택: JavaScript로 검산하기
  6. 자주 발생하는 오해와 교정
  7. 학습 완료 체크리스트
  8. 알고리즘 수학 노트
  9. 완료 체크포인트
  10. 다음 학습

이 글이 도움이 되었나요?

조회 중

읽음 기록

읽음 — / 전체 13개 · 필수 13개

이 글을 쓴 해비

웹사이트를 제작·운영하고, 개인 서비스와 자동화·AI 도구를 만듭니다. 직접 만들며 배운 내용과 문제 해결 과정을 BlogFlow에 기록합니다.

새 글 받아보기

RSS 리더에서 BlogFlow의 새 글을 확인할 수 있습니다.

RSS 피드 구독하기

댓글 남기기