相关笔记: 2.2 集合运算 | 2.4 序列与求和

概览

本节系统介绍了函数(function)的基本概念与核心性质,包括函数的定义、单射(injective)满射(surjective)双射(bijective)三种特殊函数,以及反函数(inverse function)函数复合(composition)运算。此外,本节还介绍了离散数学中极为重要的下取整函数(floor function)上取整函数(ceiling function),以及偏函数(partial function)的概念。

  • 函数是从定义域到值域的”一对一”或”多对一”映射,每个输入恰好对应一个输出
  • 单射要求不同输入映射到不同输出,满射要求值域中每个元素都被映射到,双射同时满足两者
  • 反函数仅当函数是双射时才存在,它将映射关系完全反转
  • 函数复合 先应用 再应用 ,且一般不满足交换律
  • 下取整 上取整 在数据存储、算法分析等领域有广泛应用
  • 偏函数允许定义域中某些元素没有对应的输出值,与全函数(total function)相对

一、知识结构总览

graph TB
    A["2.3 函数"] --> B["函数的基本概念"]
    A --> C["单射与满射"]
    A --> D["反函数与复合"]
    A --> E["函数的图"]
    A --> F["重要函数"]
    A --> G["偏函数"]

    B --> B1["定义域 Domain"]
    B --> B2["值域 Codomain"]
    B --> B3["像 Range"]
    B --> B4["子集的像 f(S)"]
    B --> B5["函数的相等"]

    C --> C1["单射 Injection"]
    C --> C2["满射 Surjection"]
    C --> C3["双射 Bijection"]
    C --> C4["恒等函数"]
    C --> C5["单调性与单射的关系"]

    D --> D1["反函数 f⁻¹"]
    D --> D2["函数复合 f ∘ g"]
    D --> D3["复合与反函数的关系"]

    E --> E1["图的定义"]
    E --> E2["有序对集合"]

    F --> F1["下取整 ⌊x⌋"]
    F --> F2["上取整 ⌈x⌉"]
    F --> F3["性质与恒等式"]
    F --> F4["阶乘函数 n!"]

    G --> G1["定义域 of Definition"]
    G --> G2["全函数 vs 偏函数"]

二、核心思想

核心思想

本节的核心思想是:函数是定义域到值域的一种特殊关系——每个输入恰好对应一个输出。单射、满射和双射是函数的三种重要性质,它们分别刻画了函数的”不重复性”、“覆盖性”和”一一对应性”。反函数仅对双射存在,函数复合是构造新函数的基本手段。下取整和上取整函数是连接连续数学与离散数学的桥梁,在算法分析中无处不在。

1. 函数的定义

函数(Function)

为非空集合,从 函数 是一种==将 中恰好一个元素分配给 中每个元素==的规则。若 分配给 的唯一元素,则记

  • 记作 ,也称 映射(maps)到
  • 称为 定义域(domain), 称为 值域(codomain)
  • ,则 (image),原像(preimage)
  • 的所有像的集合称为 值域(range),即
  • range codomain,两者不一定相等
  • 函数也称为映射(mapping)或变换(transformation)

函数示例:成绩分配

为将成绩分配给离散数学班级学生的函数:

学生
AdamsA
ChouC
GoodfriendB
RodriguezA
StevensF
  • 定义域:Adams, Chou, Goodfriend, Rodriguez, Stevens
  • 值域(codomain):
  • 值域(range):(D 没有被分配给任何学生)

函数的相等

两个函数相等当且仅当它们具有相同的定义域、相同的值域,并且对定义域中每个元素映射到值域中相同的元素。改变定义域、值域或映射规则中的任何一个,都会得到不同的函数。

子集的像

下的(image)定义为:

子集的像

。 取 ,则

2. 单射、满射与双射

2.1 单射(Injection)

单射函数(Injective Function)

函数 称为单射(injective)或一对一(one-to-one),当且仅当对所有定义域中的 蕴含

  • 等价表述:
  • 直觉:不同的输入一定产生不同的输出

单射 vs 非单射

函数是否单射原因
,则 ,故
,但
在正整数上,不同输入的平方不同

判断单射的方法

  • 证明单射:假设 ,推导出
  • 证明非单射:找到具体的 使得

2.2 单调性与单射的关系

单调函数

的定义域和值域是实数集的子集:

类型定义形式化
递增(increasing)
严格递增(strictly increasing)
递减(decreasing)
严格递减(strictly decreasing)

严格单调 单射

严格递增或严格递减的函数一定是单射的。但递增(非严格)或递减(非严格)的函数不一定是单射的。

严格递增保证单射

上是严格递增的:

推导过程:设 为正实数且

  1. ,得 (两边同乘
  2. ,得 (两边同乘
  3. 综合:,即

因此 严格递增,故为单射。

上不是严格递增的:,但

2.3 满射(Surjection)

满射函数(Surjective Function)

函数 称为满射(surjective),当且仅当对值域中每个元素 ,都存在 使得

  • 等价表述:
  • 直觉:值域中的每个元素都”被用到了”

满射 vs 非满射

函数是否满射原因
对任意整数 ,取 ,则
不存在整数 使得

判断满射的方法

  • 证明满射:取值域中任意元素 ,找到定义域中的 使得
  • 证明非满射:找到值域中某个元素 ,使得对所有 都有

2.4 双射(Bijection)

双射函数(Bijective Function)

函数 称为双射(bijection)或一一对应(one-to-one correspondence),当且仅当 既是单射又是满射。

  • 双射也称为可逆函数(invertible function),因为只有双射才存在反函数
  • 恒等函数 是一个双射

四种对应关系

类型单射满射示例
单射但非满射,每个映射到不同值
满射但非单射,值域全覆盖但有重复
双射,一一对应
既非单射也非满射多个输入映射到同一值,且值域未全覆盖

有限集上的单射与满射

是有限集,则 是单射当且仅当它是满射。但这一结论对无限集不成立

3. 反函数与函数复合

3.1 反函数

反函数(Inverse Function)

是从 的双射。反函数 是从 的函数,满足 当且仅当

  • 反函数存在的充要条件: 是双射
  • 不是单射,则某些 有多个原像,无法唯一确定
  • 不是满射,则某些 没有原像, 无定义
  • 注意: 不要与 (倒数函数)混淆

反函数的构造

)是双射(单射见例10,满射见例15)。

推导过程:设 ,则 。 因此

限制定义域使函数可逆

)不是双射(非单射也非满射)。

但若将定义域和值域都限制为

  • 单射:若 ,则 ,即 。由于 ,故 ,即
  • 满射:对任意 ,取 ,则
  • 反函数:

3.2 函数复合

函数复合(Composition of Functions)

复合记为 ,是从 的函数,定义为:

  • 复合的定义前提: 的值域必须是 的定义域的子集
  • 的定义域是 的定义域
  • 的值域是 的值域上的像

函数复合的计算

(均为 )。

推导过程

注意 ,即函数复合不满足交换律

复合与反函数的关系

是双射,则:

即反函数与原函数的复合(无论顺序)得到恒等函数。

4. 函数的图

函数的图(Graph of a Function)

是有序对的集合:

  • 函数的图是 的一个子集
  • 函数的图与函数确定的关系完全相同

5. 下取整与上取整函数

下取整函数(Floor Function)与上取整函数(Ceiling Function)

  • 下取整函数 :不超过 的最大整数(向左取整)
  • 上取整函数 :不小于 的最小整数(向右取整)

下取整与上取整的核心性质

为整数, 为实数:

编号性质
(1a)
(1b)
(1c)
(1d)
(2)
(3a)
(3b)
(4a)
(4b)

性质 (4a) 的证明

证明:设 ,由性质 (1a) 知 。 在不等式各部分加上 。 由性质 (1a) 得

下取整恒等式的证明:

证明:令 ,其中 为整数,

情况 1

  • ,由于 ,故
  • ,由于 ,故
  • 因此

情况 2

  • ,由于 ,故
  • ,由于 ,故
  • 因此

两种情况均成立,故恒等式得证。

上取整的反例:

  • ,故该等式不成立。

下取整/上取整的实用技巧

  • 处理 相关问题时,令 ,其中
  • 处理 相关问题时,令 ,其中
  • 类问题,通常在 处分情况讨论

6. 阶乘函数

阶乘函数(Factorial Function)

阶乘函数 定义为 ,即前 个正整数的乘积:

  • 阶乘函数增长极快:
  • Stirling 公式(当 时,

7. 偏函数

偏函数(Partial Function)

偏函数 是对 的某个子集(称为 定义域,domain of definition)中的每个元素分配 中唯一元素的规则。

  • 对于 中不在定义域内的元素,未定义的(undefined)
  • 当定义域等于 时,全函数(total function)
  • 偏函数的记号 与全函数相同,需根据上下文区分

偏函数示例

  • 定义域(domain of definition):非负整数集
  • 对负整数未定义(因为 不是实数)

三、补充理解与易混淆点

补充理解

1. 函数概念的历史演变

函数概念是数学中最核心的概念之一,其历史可追溯至 17 世纪。德国数学家 Gottfried Wilhelm Leibniz(1646-1716)在 1673 年首次引入”函数”(function)一词,最初用于描述与曲线上的点相关的量(如切线、法线等)。此后,Johann Bernoulli(1667-1748)在 1718 年将函数定义为一个由变量和常量以任何方式构成的解析表达式。18 世纪,Leonhard Euler(1707-1783)在其名著《Institutiones Calculi Differentialis》(1755)中进一步发展了函数理论。现代数学中基于集合论的函数定义(即作为有序对的集合)归功于 20 世纪初的数学形式化运动,特别是 Dirichlet(1805-1859)提出的”任意对应”观念打破了函数必须是解析表达式的限制,使得离散数学中的函数(如特征函数、下取整函数等)获得了严格的数学基础。

网络资源:

2. 下取整与上取整在计算机科学中的广泛应用

下取整 和上取整 函数在计算机科学中无处不在。在算法分析中,归并排序的时间复杂度为 ,需要利用取整函数的性质来求解递推关系。在密码学中,RSA 加密算法的核心运算依赖于模幂运算,而密钥长度和分组大小的计算都涉及取整函数。在计算机图形学中,将连续的几何坐标映射到离散的像素网格时,Bresenham 画线算法本质上就是在进行取整运算。在数据通信中,如教材中 ATM 信元计算的例子所示,数据分组的数量需要用 来确定。此外,在散列函数的设计中,取整运算用于将浮点数映射到整数索引。

  • 来源: Graham, R. L., Knuth, D. E., & Patashnik, O. (1994). Concrete Mathematics (2nd ed.). Addison-Wesley. Chapter 3: Integer Functions.
  • 参考: Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms (3rd ed.). MIT Press. https://mitpress.mit.edu/9780262033848/

网络资源:

易混淆点

1. 反函数记号 vs 倒数

  • ❌ 将反函数 与倒数函数 混淆,认为
  • 是反函数(将映射关系反转), 是倒数函数(对函数值取倒数)。例如 的反函数是 ,而 。两者完全不同。注意 仅当 是双射时才存在,而 只要求

2. 值域(codomain)vs 像集(range)

  • ❌ 认为值域(codomain)和像集(range)是同一个概念,可以互换使用
  • 值域(codomain)是函数定义中指定的目标集合 ,包含所有可能的输出值;像集(range)是实际被映射到的值的集合 。像集一定是值域的子集,但两者不一定相等。例如 )的值域是 ,但像集是 。改变值域会得到不同的函数,即使映射规则不变

四、习题精选

习题概览

题号范围核心考点难度
1-3判断是否为函数(定义域/值域/映射规则)
4-7求函数的定义域和值域⭐⭐
8-9下取整与上取整函数的计算
10-13判断单射/满射(有限集与整数集)⭐⭐
14-15判断 的满射性⭐⭐⭐
16-19实际场景中的单射/满射条件分析⭐⭐
20-23构造单射/满射/双射/非单非满的函数⭐⭐⭐
24-27严格单调与单射的关系证明⭐⭐⭐
28-29可逆性判断与限制定义域使函数可逆⭐⭐
30-32子集的像 的计算⭐⭐
33-37函数复合的性质(单射/满射的保持性)⭐⭐⭐
38-41函数复合与反函数的计算⭐⭐
42-47像与逆像的性质证明⭐⭐⭐
48-58下取整/上取整函数的性质证明⭐⭐⭐
60-63下取整/上取整在实际问题中的应用⭐⭐
64-70函数图形的绘制⭐⭐
71-72反函数的求解与复合反函数⭐⭐
73特征函数与集合运算的关系⭐⭐⭐
74有限集上单射与满射的等价性证明⭐⭐⭐
75-78下取整/上取整恒等式的证明与反证⭐⭐⭐
79-82偏函数与全函数⭐⭐

题1:判断函数的单射性与满射性

题目

判断函数 是否为单射、满射或双射,并说明理由。

题2:判断线性函数的单射性与满射性

题目

判断 是否为单射、满射、双射。

题3:不同定义域下单射性/满射性的讨论

题目

,分别讨论定义域为 时的单射性/满射性(值域均为 )。

题4:求反函数并验证复合

题目

,求 并验证

题5:复合双射的反函数公式

题目

证明:若 都是双射,则

解题思路提示

判断单射:找两个不同输入是否映射到相同输出(偶函数通常非单射)。判断满射:检查值域中是否有元素没有被映射到。对于 类函数,注意偶数次幂会导致非单射,而值域下界 会导致非满射。


五、视频学习指南

视频资源

资源链接对应内容备注
Rosen 8e Section 2.3教材原文函数定义、单射满射双射英文教材
MIT 6.042J Lecture 4链接函数与下取整/上取整英文,MIT开放课程
TrevTutor - Functions链接单射、满射、双射判定英文,适合自学

六、教材原文

教材原文

“Let A and B be nonempty sets. A function f from A to B is an assignment of exactly one element of B to each element of A. We write f(a) = b if b is the unique element of B assigned by the function f to the element a of A.”

“A function f is called injective (or one-to-one) if and only if f(a) = f(b) implies that a = b for all a and b in the domain of f.”


参见 Wiki

  • 函数 — 函数的基本概念与分类
  • 双射 — 一一对应关系的深入讨论
  • 反函数 — 反函数的存在条件与计算方法
  • 函数复合 — 复合运算的性质与计算
  • 下取整函数 — Floor 函数的性质与应用
  • 上取整函数 — Ceiling 函数的性质与应用
  • 偏函数 — 偏函数与全函数的区别
  • 特征函数 — 用函数表示集合的方法 #学习/离散数学/基本结构