取整函数











下取整函数







上取整函数



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


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


下取整函数即為取底符號,在数学中一般记作⌊x⌋{displaystyle lfloor xrfloor }lfloor x rfloor或者E(x){displaystyle E(x)}E(x),在计算机科学中一般记作floor(x),表示不超过x的整数中最大的一个。



⌊x⌋=max{n∈Z∣n≤x}.{displaystyle lfloor xrfloor =max ,{nin mathbb {Z} mid nleq x}.} lfloor x rfloor=max, {ninmathbb{Z}mid nle x}.


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


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


上取整函数即為取頂符號在数学中一般记作⌈x⌉{displaystyle lceil xrceil }lceil x rceil,在计算机科学中一般记作ceil(x),表示不小于x的整数中最小的一个。



⌈x⌉=min{n∈Z∣x≤n}.{displaystyle lceil xrceil =min{nin mathbb {Z} mid xleq n}.} lceil x rceil=min{ninmathbb{Z}mid xle n}.


举例来说,⌈3.633⌉=4{displaystyle lceil 3.633rceil =4}lceil 3.633 rceil = 4,⌈56⌉=56{displaystyle lceil 56rceil =56}lceil 56 rceil = 56,⌈−2⌉=−2{displaystyle lceil -2rceil =-2}lceil -2 rceil = -2,⌈−2.263⌉=−2{displaystyle lceil -2.263rceil =-2}lceil -2.263 rceil = -2。


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



性质


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



  • 按定义:




⌊x⌋≤x<⌊x⌋+1{displaystyle lfloor xrfloor leq x<lfloor xrfloor +1} lfloor xrfloor le x < lfloor x rfloor + 1 当且仅当x为整数时取等号。



  • 设x和n为正实数,则:





⌊nx⌋≥nx−n−1x{displaystyle leftlfloor {frac {n}{x}}rightrfloor geq {frac {n}{x}}-{frac {n-1}{x}}} leftlfloor frac{n}{x} rightrfloor geq frac{n}{x} - frac{n-1}{x}





  • 下取整函数为等幂运算:⌊⌊x⌋⌋=⌊x⌋{displaystyle lfloor lfloor xrfloor rfloor =lfloor xrfloor }lfloorlfloor xrfloorrfloor=lfloor xrfloor.

  • 对任意的整数k和任意实数x,



⌊k+x⌋=k+⌊x⌋.{displaystyle lfloor {k+x}rfloor =k+lfloor xrfloor .} lfloor {k+x} rfloor = k + lfloor xrfloor.



  • 一般的數值修約規則可以表述为将x映射到floor(x + 0.5);

  • 下取整函数不是连续函数,但是上半连续的。作为一个分段的常数函数,在其导数有定义的地方,下取整函数导数为零。

  • 设x为一个实数,n为整数,则由定义,n ≤ x当且仅当n ≤ floor(x)。



  • 用下取整函数可以写出若干个素数公式,但没有什么实际价值。

  • 对于非整数的x,下取整函数有如下的富裡葉展开:



⌊x⌋=x−12+1π∑k=1∞sin⁡(2πkx)k.{displaystyle lfloor xrfloor =x-{frac {1}{2}}+{frac {1}{pi }}sum _{k=1}^{infty }{frac {sin(2pi kx)}{k}}.}lfloor xrfloor = x - frac{1}{2} + frac{1}{pi} sum_{k=1}^infty frac{sin(2 pi k x)}{k}.



  • 对于互素的正整数m和n,有:



∑i=1n−1⌊im/n⌋=(m−1)(n−1)/2{displaystyle sum _{i=1}^{n-1}lfloor im/nrfloor =(m-1)(n-1)/2}sum_{i=1}^{n-1} lfloor im / n rfloor = (m - 1) (n - 1) / 2



  • 根据Beatty定理,每个正无理数都可以通过下取整函数制造出一个整数集的分划。

  • 最后,对于每个正整数k,其在 p 进制下的表示有 ⌊logp⁡(k)⌋+1{displaystyle lfloor log _{p}(k)rfloor +1}lfloor log _{{p}}(k)rfloor +1 个数位。


对于上取整函数:



  • 显然有:



⌈x⌉=−⌊−x⌋{displaystyle lceil xrceil =-lfloor -xrfloor }lceil x rceil = - lfloor - x rfloor



  • 以及:



x≤⌈x⌉<x+1{displaystyle xleq lceil xrceil <x+1}x leq lceil x rceil < x + 1



  • 对于整数k有:




⌊k/2⌋+⌈k/2⌉=k{displaystyle lfloor k/2rfloor +lceil k/2rceil =k}lfloor k / 2 rfloor + lceil k / 2 rceil = k.



其它等式



  • [x+1]=[x]+1{displaystyle [x+1]=[x]+1}{displaystyle [x+1]=[x]+1}

  • 设x为一个实数,n为整数,则



∑k=0n−1E(x+kn)=E(nx){displaystyle sum _{k=0}^{n-1}E(x+{frac {k}{n}})=E(nx)}sum_{k = 0}^{n - 1} E(x+frac{k}{n}) = E(nx)

E(1nE(nx))=E(x){displaystyle E({frac {1}{n}}E(nx))=E(x)}E(frac{1}{n}E(nx))=E(x)



  • 对于两个相反数的下取整函数,有:



如果x为整数,则E(x)+E(−x)=0{displaystyle E(x)+E(-x)=0}E(x) + E(-x) = 0

否则E(x)+E(−x)=−1{displaystyle E(x)+E(-x)=-1}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.



這個網誌中的熱門文章

萊昂哈德·歐拉

太平洋

英國廣播公司第一台