取整函数
取整函数是一类将实数映射到整数的函数 ,在数论 、计算机科学 、数值分析 和离散数学中具有基础性地位。其核心思想是:给定任意实数 x x x ,按照特定规则将其"取整"为某个整数。根据取整方向和处理小数部分的方式不同,取整函数主要分为下取整 (Floor)、上取整 (Ceiling)、向零取整 (Truncation)和四舍五入 (Round)四种基本形式。这些函数在算法复杂度分析(如主定理 中的取整项)、数据分箱、组合计数以及计算机浮点运算中均有广泛应用。
下取整函数 (Floor)
下取整函数记作 ⌊ x ⌋ \lfloor x \rfloor ⌊ x ⌋ 或 floor ( x ) \operatorname{floor}(x) floor ( x ) ,定义为不大于 x x x 的最大整数 :
⌊ x ⌋ = max { n ∈ Z ∣ n ≤ x } \lfloor x \rfloor = \max\{n \in \mathbb{Z} \mid n \le x\} ⌊ x ⌋ = max { n ∈ Z ∣ n ≤ x }
例如 ⌊ 3.7 ⌋ = 3 \lfloor 3.7 \rfloor = 3 ⌊ 3.7 ⌋ = 3 ,⌊ − 2.3 ⌋ = − 3 \lfloor -2.3 \rfloor = -3 ⌊ − 2.3 ⌋ = − 3 。下取整函数是一个右连续的阶跃函数,在每个整数点处发生跳跃,跳跃幅度为 1 1 1 。其基本性质包括:⌊ x ⌋ ≤ x < ⌊ x ⌋ + 1 \lfloor x \rfloor \le x < \lfloor x \rfloor + 1 ⌊ x ⌋ ≤ x < ⌊ x ⌋ + 1 ;对于任意整数 n n n ,有 ⌊ x + n ⌋ = ⌊ x ⌋ + n \lfloor x + n \rfloor = \lfloor x \rfloor + n ⌊ x + n ⌋ = ⌊ x ⌋ + n ;以及恒等式 ⌊ − x ⌋ = − ⌈ x ⌉ \lfloor -x \rfloor = -\lceil x \rceil ⌊ − x ⌋ = − ⌈ x ⌉ ,揭示了 floor 与 ceiling 之间的对偶关系。在编程语言中,floor 通常由 \texttt{floor()} 函数或整数除法(向负无穷方向取整)实现。
上取整函数 (Ceiling)
上取整函数记作 ⌈ x ⌉ \lceil x \rceil ⌈ x ⌉ 或 ceil ( x ) \operatorname{ceil}(x) ceil ( x ) ,定义为不小于 x x x 的最小整数:
⌈ x ⌉ = min { n ∈ Z ∣ n ≥ x } \lceil x \rceil = \min\{n \in \mathbb{Z} \mid n \ge x\} ⌈ x ⌉ = min { n ∈ Z ∣ n ≥ x }
例如 ⌈ 3.2 ⌉ = 4 \lceil 3.2 \rceil = 4 ⌈ 3.2 ⌉ = 4 ,⌈ − 2.7 ⌉ = − 2 \lceil -2.7 \rceil = -2 ⌈ − 2.7 ⌉ = − 2 。上取整是左连续的阶跃函数,基本性质为 x ≤ ⌈ x ⌉ < x + 1 x \le \lceil x \rceil < x + 1 x ≤ ⌈ x ⌉ < x + 1 ,以及 ⌈ x + n ⌉ = ⌈ x ⌉ + n \lceil x + n \rceil = \lceil x \rceil + n ⌈ x + n ⌉ = ⌈ x ⌉ + n (n n n 为整数)。上下取整之间的核心对偶关系可表述为 ⌊ x ⌋ + ⌈ − x ⌉ = 0 \lfloor x \rfloor + \lceil -x \rceil = 0 ⌊ x ⌋ + ⌈ − x ⌉ = 0 和 ⌈ x ⌉ − ⌊ x ⌋ = [ x ∉ Z ] \lceil x \rceil - \lfloor x \rfloor = [x \notin \mathbb{Z}] ⌈ x ⌉ − ⌊ x ⌋ = [ x ∈ / Z ] ,其中 [ P ] [P] [ P ] 为艾佛森括号 ,当命题 P P P 成立时取 1 1 1 ,否则取 0 0 0 。在计算机科学中,内存分配和分页机制常使用上取整来计算所需页框数。
向零取整 (Truncation)
向零取整(截断)函数丢弃实数的小数部分,仅保留整数部分,记作 int ( x ) \operatorname{int}(x) int ( x ) 或 trunc ( x ) \operatorname{trunc}(x) trunc ( x ) 。其定义为:
\operatorname{trunc}(x) = \begin{cases}
\lfloor x \rfloor, \& x \ge 0 \\ \lceil x \rceil, \& x < 0
\end{cases}
例如 trunc ( 3.7 ) = 3 \operatorname{trunc}(3.7) = 3 trunc ( 3.7 ) = 3 ,trunc ( − 2.3 ) = − 2 \operatorname{trunc}(-2.3) = -2 trunc ( − 2.3 ) = − 2 。与 floor 不同,trunc 在负数域中向零方向取整,因此它是奇函数:trunc ( − x ) = − trunc ( x ) \operatorname{trunc}(-x) = -\operatorname{trunc}(x) trunc ( − x ) = − trunc ( x ) 。大多数编程语言(如 C、Python、Java)中的\texttt{int()} 或类型强制转换均采用此语义。需要注意的是,向零取整不满足 ⌊ x + n ⌋ = ⌊ x ⌋ + n \lfloor x + n \rfloor = \lfloor x \rfloor + n ⌊ x + n ⌋ = ⌊ x ⌋ + n 的平移性质,这使其在数学推导中不如 floor 方便,但在处理带有符号的数据时更符合直觉。
小数部分函数
与取整函数紧密相关的是小数部分(Fractional Part)函数,记作 { x } \{x\} { x } 或 frac ( x ) \operatorname{frac}(x) frac ( x ) ,定义为:
{ x } = x − ⌊ x ⌋ \{x\} = x - \lfloor x \rfloor { x } = x − ⌊ x ⌋
由定义可知 0 ≤ { x } < 1 0 \le \{x\} < 1 0 ≤ { x } < 1 恒成立,且 x = ⌊ x ⌋ + { x } x = \lfloor x \rfloor + \{x\} x = ⌊ x ⌋ + { x } 。例如 { 3.7 } = 0.7 \{3.7\} = 0.7 { 3.7 } = 0.7 ,{ − 2.3 } = 0.7 \{-2.3\} = 0.7 { − 2.3 } = 0.7 。在实数 的十进制表示、同余 理论以及傅里叶级数 (如锯齿波函数)中,小数部分函数扮演着关键角色。
四舍五入 (Rounding)
四舍五入(Round)将实数映射到最接近的整数,当小数部分恰好为 0.5 0.5 0.5 时存在多种平局规则 (Tie-breaking)。最常见的"四舍五入,五取偶"(Banker's Rounding)规则为:
\operatorname{round}(x) = \begin{cases}
\lfloor x \rfloor, \& \{x\} < 0.5 \\ \lceil x \rceil, \& \{x\} > 0.5 \\ 最接近的偶数 \text{最接近的偶数} 最接近的偶数 , \& \{x\} = 0.5
\end{cases}
取偶规则(Round half to even)消除了系统性向上偏差,在IEEE 754 浮点标准中被采纳为默认舍入模式。其他变体包括"五取上"(Round half up,即对称舍入取远离零)和"五取下"(Round half down)。在货币 计算和统计数据发布中,四舍五入是最常用的取整方式。
核心恒等式与应用
取整函数满足一系列在算法分析和组合数学中极为实用的恒等式:
区间内整数个数: 区间 [ α , β ] [\alpha, \beta] [ α , β ] 内的整数个数为 ⌊ β ⌋ − ⌈ α ⌉ + 1 \lfloor \beta \rfloor - \lceil \alpha \rceil + 1 ⌊ β ⌋ − ⌈ α ⌉ + 1 (当 α ≤ β \alpha \le \beta α ≤ β )。除法取整恒等式: 对于整数 n n n 和正整数 d d d ,有 ⌊ n / d ⌋ = ( n − n m o d d ) / d \lfloor n/d \rfloor = (n - n \bmod d)/d ⌊ n / d ⌋ = ( n − n mod d ) / d ,这是整数除法的基础。嵌套取整: ⌊ ⌊ x ⌋ / n ⌋ = ⌊ x / n ⌋ \lfloor \lfloor x \rfloor / n \rfloor = \lfloor x/n \rfloor ⌊⌊ x ⌋ / n ⌋ = ⌊ x / n ⌋ ,该性质在分析分治算法时用于合并递归中的取整操作。Hermite恒等式: 对任意实数 x x x 和正整数 n n n ,有 ∑ k = 0 n − 1 ⌊ x + k / n ⌋ = ⌊ n x ⌋ \sum_{k=0}^{n-1} \lfloor x + k/n \rfloor = \lfloor nx \rfloor ∑ k = 0 n − 1 ⌊ x + k / n ⌋ = ⌊ n x ⌋ 。
在微积分 中,取整函数作为阶跃函数的典型代表,其黎曼-斯蒂尔杰斯积分 可用来将离散求和转化为积分形式。在概率论 中,若 X X X 是连续随机变量,则 ⌊ X ⌋ \lfloor X \rfloor ⌊ X ⌋ 是一个离散随机变量 ,其概率质量函数 为 P ( ⌊ X ⌋ = k ) = F X ( k + 1 ) − F X ( k ) P(\lfloor X \rfloor = k) = F_X(k+1) - F_X(k) P (⌊ X ⌋ = k ) = F X ( k + 1 ) − F X ( k ) ,其中 F X F_X F X 为 X X X 的累积分布函数 。这一关系在从连续分布生成离散样本时具有实际指导意义。
关于知经 KNOWECON
知经 KNOWECON 是深圳市卢可教育科技有限公司旗下的教育科技品牌,长期面向北京大学、清华大学、中国人民大学等顶尖院校,提供经济学、金融学、统计学、管理学等相关科目的专业课考研辅导与复试辅导。每年都有数十名同学在我们的帮助下完成系统备考,并成功进入理想院校。
知经主讲人喵喵学长毕业于北京大学汇丰商学院经济学专业和新加坡国立大学金融工程专业,获经济学硕士与金融工程硕士学位。他同时也是软件工程师和教育科技创业者,长期探索用讲义、题库、记忆系统、智能答疑与学习数据工具改善专业课学习体验。
我们相信,好的考研辅导不只是押题和陪跑,更是把复杂知识讲清楚、把复习路径设计清楚,并用技术让学习过程更可追踪、更可反馈、更可坚持。