Files
python/TangDou/AcWing/Math/RongChi/取整函数及其性质.md
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

62 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 取整函数及其性质
### 1、取整函数定义及分类
取整函数是一类将实数映射到相近的整数的函数。
常用的取整函数有两个,分别是**下取整**函数和**上取整**函数。
* [Floor and ceiling functions - Wikipedia](https://en.wikipedia.org/wiki/Floor_and_ceiling_functions#Number_of_digits)
* [Useful Properties of the Floor and Ceil Functions](https://janmr.com/blog/2009/09/useful-properties-of-the-floor-and-ceil-functions/)
下取整函数在数学中一般记作$\left \lfloor x \right \rfloor$,比自己小的最大整数,在计算机科学中一般记作$floor(x)$;
上取整函数在数学中一般记作$\left \lceil x \right \rceil$,比自己大的最小整数,在计算机科学中一般记作$ceil(x)$。
### 2、性质:(仅列举计算机学习中经常用到的性质)
* 任意实数$x$,有: $x−1<⌊x⌋≤x≤⌈x⌉<x+1$
<br>
* 下取整函数为等幂运算: $\left \lfloor \left \lfloor x \right \rfloor \right \rfloor = \left \lfloor x \right \rfloor.$
<br>
* 对任意的整数 $k$ 和任意实数 $x$,$\left \lfloor k+x \right \rfloor = k + \left \lfloor x \right \rfloor$
<br>
* 一般的数值修约规则可以表述为将$x$映射到 $floor(x + 0.5)$。
<br>
* $\left \lceil x \right \rceil = - \left \lfloor -x \right \rfloor$
<br>
* 对于整数$k$有:$\left \lfloor k/2 \right \rfloor + \left \lceil k/2 \right \rceil = k$
### 3、对数与取整函数的关系
二者关系为:
$\left \lceil \log (x+1) \right \rceil = \left \lfloor \log x \right \rfloor +1, x\in Z, x\geqslant 1$
**证明:**
令$m = \left \lfloor \log x \right \rfloor$,
则 $m \leq \log x < m+1$ ①
由式①可得
$2^{m} \leq x < 2^{m+1}$ ②,
进而可得
$2^{m} < x+1 \leq 2^{m+1}$
因为 $x\in Z$, 所以 $m < \log (x+1) \leq m+1$.
所以 $\left \lceil \log (x+1) \right \rceil = m+ 1= \left \lfloor \log x \right \rfloor + 1$.
### 4、向下取整与向上取整的转换方法
我们知道,一般在程序语言中,两个整数相除都是向下取整。例如,$5/3=1,2/3=0$;
那么向上取整该如何表示呢,也就是说,**向上取整能不能通过向下取整的方式来表达**?
当然可以,下面是转换公式:
<center><img src='https://img-blog.csdn.net/20140113090723046'></center>