在数学和电脑科学中,取整函数是一类将实数映射到相近的整数的函数。[1]
常用的取整函数有两个,分别是下取整函数(英语:floor function)和上取整函数(ceiling function)。
下取整函数即为取底符号,在数学中一般记作或者或者,在电脑科学中一般记作floor(x),表示不超过x的整数中最大的一个。
举例来说,,,,。对于非负的实数,其下取整函数的值一般叫做它的整数部分或取整部分。而叫做x的小数部分。每个分数都可以表示成其整数部分与一个真分数的和,而实数的整数部分和小数部分是与此概念相应的拓延。
下取整函数的符号用方括号表示(),称作高斯符号,首次出现是在卡尔·弗里德里希·高斯的数学著作《算术研究》。
上取整函数即为取顶符号在数学中一般记作,在电脑科学中一般记作ceil(x),表示不小于x的整数中最小的一个。
举例来说,,,,。
电脑中的上取整函数和下取整函数的命名来自于英文的ceiling(天花板)和floor(地板),1962年由肯尼斯·艾佛森于《A Programming Language》引入。[2]
对于高斯符号,有如下性质。
- 按定义:
- 当且仅当x为整数时取等号。
- 设x和n为正整数,则:
- 当n为正整数时,有:
- 其中表示除以的余数。
- 对任意的整数k和任意实数x,
- 一般的数值修约规则可以表述为将x映射到floor(x + 0.5);
- 高斯符号不是连续函数,但是上半连续的。作为一个分段的常数函数,在其导数有定义的地方,高斯符号导数为零。
- 设x为一个实数,n为整数,则由定义,n ≤ x当且仅当n ≤ floor(x)。
- 当x是正数时,有:
- 用高斯符号可以写出若干个素数公式,但没有什么实际价值,见§ 素数公式。
- 对于非整数的x,高斯符号有如下的傅里叶级数展开:
- 根据Beatty定理,每个正无理数都可以通过高斯符号制造出一个整数集的分划。
- 最后,对于每个正整数k,其在 p 进制下的表示有 个数码。
由上下取整函数的定义,可见
等号当且仅当为整数,即
实际上,上取整与下取整函数作用于整数,效果等同恒等函数:
自变量加负号,相当于将上取整与下取整互换,外面再加负号,即:
且:
至于小数部分,自变量取相反数会使小数部分变成关于1的“补码”:
上取整、下取整、小数部分皆为幂等函数,即函数迭代两次的结果等于自身:
而多个上取整与下取整依次迭代的效果,相当于最内层一个:
因为外层取整函数实际只作用在整数上,不带来变化。
若和为正整数,且,则
若为正整数,则
若为正数,则
代,上式推出:
更一般地,对正整数,有埃尔米特恒等式:[5]
对于正整数,以下两式可将上下取整函数互相转化:
对任意正整数和,有:
作为特例,当和互素时,上式简化为
此等式可以几何方式证明。又由于右式关于、对称,可得
更一般地,对正整数,有
上式算是一种“互反律”(reciprocity law),与§ 二次互反律有关。
高斯给出二次互反律的第三个证明,经艾森斯坦修改后,有以下两个主要步骤。
设、为互异奇素数,又设
-
首先,利用高斯引理,证明勒让德符号可表示为和式:
同样
其后,采用几何论证,证明
总结上述两步,得
此即二次互反律。一些小整数模奇素数的二次特征标,可以高斯符号表示,如:
下取整函数出现于若干刻画素数的公式之中。举例,因为在整除时等于,否则为,所以正整数为素数当且仅当[11]
除表示素数的条件外,还可以写出公式使其取值为素数。例如,记第个素数为,任选一个整数,然后定义实数为
则只用取整、幂、四则运算可以写出素数公式:
类似还有米尔斯常数,使
皆为素数。[13]
若不迭代三次方函数,改为迭代以为㡳的指数函数,亦有使
皆为素数。[13]
以素数计算函数表示小于或等于的素数个数。由威尔逊定理,可知
又或者,当时:[15]
本小节的公式未有任何实际用途。[16][17]
- 如果x为整数,则
- 否则
截尾函数