取整函数











下取整函数







上取整函数



在数学和计算机科学中,取整函数是一类将实数映射到相近的整数的函数。[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 = 356⌋=56{displaystyle lfloor 56rfloor =56}lfloor 56 rfloor = 562⌋=−2{displaystyle lfloor -2rfloor =-2}lfloor -2 rfloor = -22.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 = 456⌉=56{displaystyle lceil 56rceil =56}lceil 56 rceil = 562⌉=−2{displaystyle lceil -2rceil =-2}lceil -2 rceil = -22.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为整数,则由定义,nx当且仅当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}.



  • 对于互素的正整数mn,有:



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.



這個網誌中的熱門文章

請回答1994

FM

龍潭區 (台灣)