取整函数

维基百科,自由的百科全书
跳转到: 导航, 搜索
下取整函数
上取整函数

数学计算机科学中,取整函数是一类将实数映射到相近的整数函数[1]

常用的取整函数有两个,分别是下取整函数上取整函数

下取整函数在数学中一般记作\lfloor x \rfloor或者E(x),在计算机科学中一般记作 floor(x) ,表示不超过x的整数中最大的一个。

 \lfloor x \rfloor=\max\, \{n\in\mathbb{Z}\mid n\le x\}.

举例来说,\lfloor 3.633 \rfloor = 3\lfloor 56 \rfloor = 56\lfloor -2 \rfloor = -2\lfloor -2.263 \rfloor = -3。对于非负的实数,其下取整函数的值一般叫做它的整数部分取整部分。而x -\lfloor x\rfloor叫做x小数部分。每个分数都可以表示成其整数部分与一个真分数的和,而实数的整数部分和小数部分是与此概念相应的拓延。

下取整函数的符号也会用方括号表示,如[2.3]=2,称作高斯符号。而(x)则被用来表示一个数的小数部分,如(2.3)=0.3。

上取整函数在数学中一般记作\lceil x \rceil,在计算机科学中一般记作ceil(x),表示不小于x的整数中最小的一个。

 \lceil x \rceil=\min\{n\in\mathbb{Z}\mid x\le n\}.

举例来说,\lceil 3.633 \rceil = 4\lceil 56 \rceil = 56\lceil -2 \rceil = -2\lceil -2.263 \rceil = -2

计算机中的上取整函数和下取整函数的命名来自于英文ceiling(天花板)floor(地板) ,相关的记法由肯尼斯·艾佛森于1962年引入。[2]

[编辑] 性质

对于下取整函数,有如下性质。

  • 按定义:
 \lfloor x\rfloor \le x < \lfloor x \rfloor + 1

等号成立当且仅当x为整数。

  • 设 x 和 n 为正实数,则:
 \left\lfloor \frac{n}{x} \right\rfloor \geq \frac{n}{x} - \frac{n-1}{x}
  • 下取整函数为等幂运算: \lfloor\lfloor x\rfloor\rfloor=\lfloor x\rfloor.
  • 对任意的整数 k 和任意实数 x
 \lfloor {k+x} \rfloor = k + \lfloor x\rfloor.
  • 一般的數值修約規則可以表述为将x映射到 floor(x + 0.5);
  • 下取整函数不是连续函数,但是上半连续的。作为一个分段的常数函数,在其导数有定义的地方,下取整函数导数为零。
  • x 为一个实数, n 为整数,则由定义,nx 当且仅当 n ≤ floor(x)。
  • 用下取整函数可以写出若干个素数公式,但没有什么实际价值。
  • 对于非整数的 x,下取整函数有如下的富里叶展开:
\lfloor x\rfloor = x - \frac{1}{2} + \frac{1}{\pi} \sum_{k=1}^\infty \frac{\sin(2 \pi k x)}{k}.
  • 对于互素的正整数 mn ,有:
\sum_{i=1}^{n-1} \lfloor im / n \rfloor = (m - 1) (n - 1) / 2
\lfloor \log_{10}(k) \rfloor + 1

对于上取整函数:

  • 显然有:
\lceil x \rceil = - \lfloor - x \rfloor
  • 以及:
x \leq \lceil x \rceil < x + 1
  • 对于整数k有:
\lfloor k / 2 \rfloor + \lceil k / 2 \rceil = k.

[编辑] 其它等式

  • x 为一个实数, n 为整数,则
\sum_{k = 0}^{n - 1} E(x+\frac{k}{n}) = E(nx)
E(\frac{1}{n}E(nx))=E(x)
  • 对于两个相反数的下取整函数,有:
如果x为整数,则E(x) + E(-x) = 0
否则E(x) + E(-x) = -1

[编辑] 参考来源

  1. ^ Ronald Graham, Donald Knuth and Oren Patashnik. "Concrete Mathematics". Addison-Wesley, 1999. Chapter 3, "Integer Functions".
  2. ^ Kenneth E. Iverson. "A Programming Language". Wiley, 1962.
个人工具
名字空间
操作
导航
帮助
工具
其他语言