取整函数
建議此條目或章節與高斯符號合并。(討論) |
下取整函数
上取整函数
在数学和计算机科学中,取整函数是一类将实数映射到相近的整数的函数。[1]
常用的取整函数有两个,分别是下取整函数和上取整函数。
下取整函数即為取底符號,在数学中一般记作⌊x⌋{displaystyle lfloor xrfloor }或者E(x){displaystyle E(x)}
,在计算机科学中一般记作floor(x),表示不超过x的整数中最大的一个。
- ⌊x⌋=max{n∈Z∣n≤x}.{displaystyle lfloor xrfloor =max ,{nin mathbb {Z} mid nleq x}.}
举例来说,⌊3.633⌋=3{displaystyle lfloor 3.633rfloor =3},⌊56⌋=56{displaystyle lfloor 56rfloor =56}
,⌊−2⌋=−2{displaystyle lfloor -2rfloor =-2}
,⌊−2.263⌋=−3{displaystyle lfloor -2.263rfloor =-3}
。对于非负的实数,其下取整函数的值一般叫做它的整数部分或取整部分。而x−⌊x⌋{displaystyle x-lfloor xrfloor }
叫做x的小数部分。每个分数都可以表示成其整数部分与一个真分数的和,而实数的整数部分和小数部分是与此概念相应的拓延。
下取整函数的符号也会用方括号表示,如[2.3]=2,称作高斯符号。而(x)则被用来表示一个数的小数部分,如(2.3)=0.3。
上取整函数即為取頂符號在数学中一般记作⌈x⌉{displaystyle lceil xrceil },在计算机科学中一般记作ceil(x),表示不小于x的整数中最小的一个。
- ⌈x⌉=min{n∈Z∣x≤n}.{displaystyle lceil xrceil =min{nin mathbb {Z} mid xleq n}.}
举例来说,⌈3.633⌉=4{displaystyle lceil 3.633rceil =4},⌈56⌉=56{displaystyle lceil 56rceil =56}
,⌈−2⌉=−2{displaystyle lceil -2rceil =-2}
,⌈−2.263⌉=−2{displaystyle lceil -2.263rceil =-2}
。
计算机中的上取整函数和下取整函数的命名来自于英文的ceiling(天花板)和floor(地板),相关的记法由肯尼斯·艾佛森于1962年引入。[2]
性质
对于下取整函数,有如下性质。
- 按定义:
⌊x⌋≤x<⌊x⌋+1{displaystyle lfloor xrfloor leq x<lfloor xrfloor +1}当且仅当x为整数时取等号。
- 设x和n为正实数,则:
- ⌊nx⌋≥nx−n−1x{displaystyle leftlfloor {frac {n}{x}}rightrfloor geq {frac {n}{x}}-{frac {n-1}{x}}}
- ⌊nx⌋≥nx−n−1x{displaystyle leftlfloor {frac {n}{x}}rightrfloor geq {frac {n}{x}}-{frac {n-1}{x}}}
- 下取整函数为等幂运算:⌊⌊x⌋⌋=⌊x⌋{displaystyle lfloor lfloor xrfloor rfloor =lfloor xrfloor }
.
- 对任意的整数k和任意实数x,
- ⌊k+x⌋=k+⌊x⌋.{displaystyle 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}}.}
- 对于互素的正整数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}
- 根据Beatty定理,每个正无理数都可以通过下取整函数制造出一个整数集的分划。
- 最后,对于每个正整数k,其在 p 进制下的表示有 ⌊logp(k)⌋+1{displaystyle lfloor log _{p}(k)rfloor +1}
个数位。
对于上取整函数:
- 显然有:
- ⌈x⌉=−⌊−x⌋{displaystyle lceil xrceil =-lfloor -xrfloor }
- 以及:
- x≤⌈x⌉<x+1{displaystyle xleq lceil xrceil <x+1}
- 对于整数k有:
⌊k/2⌋+⌈k/2⌉=k{displaystyle lfloor k/2rfloor +lceil k/2rceil =k}.
其它等式
- [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)}
- E(1nE(nx))=E(x){displaystyle E({frac {1}{n}}E(nx))=E(x)}
- 对于两个相反数的下取整函数,有:
- 如果x为整数,则E(x)+E(−x)=0{displaystyle E(x)+E(-x)=0}
- 否则E(x)+E(−x)=−1{displaystyle E(x)+E(-x)=-1}
参考来源
^ Ronald Graham, Donald Knuth and Oren Patashnik. "Concrete Mathematics". Addison-Wesley, 1999. Chapter 3, "Integer Functions".
^ Kenneth E. Iverson. "A Programming Language". Wiley, 1962.