下取整函数
上取整函数 在数学和计算机科学中,取整函数是一类将实数映射到相近的整数的函数。[1]
常用的取整函数有两个,分别是下取整函数(英語:floor function)和上取整函数(ceiling function)。
下取整函数即為取底符號,在数学中一般记作
或者
或者
,在计算机科学中一般记作floor(x),表示不超过x的整数中最大的一个。
![{\displaystyle [x]=\max \,\{n\in \mathbb {Z} \mid n\leq x\}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/89b4057f9bb7f2632a9935475e001d5cf4a832fa)
举例来说,
,
,
,
。对于非负的实数,其下取整函数的值一般叫做它的整数部分或取整部分。而
叫做x的小数部分。每个分数都可以表示成其整数部分与一个真分数的和,而实数的整数部分和小数部分是与此概念相应的拓延。
下取整函数的符号用方括号表示(
),称作高斯符号,首次出現是在卡爾·弗里德里希·高斯的數學著作《算术研究》。
上取整函数即為取頂符號在数学中一般记作
,在计算机科学中一般记作ceil(x),表示不小于x的整数中最小的一个。
![{\displaystyle \lceil x\rceil =\min\{n\in \mathbb {Z} \mid x\leq n\}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/03bd72bbdadfd75988d563bfc19281da65a428bf)
举例来说,
,
,
,
。
计算机中的上取整函数和下取整函数的命名来自于英文的ceiling(天花板)和floor(地板),1962年由肯尼斯·艾佛森于《A Programming Language》引入。[2]
对于高斯符號,有如下性质。
- 按定义:
当且仅当x为整数时取等号。
- 设x和n为正整数,则:
![{\displaystyle \left[{\frac {n}{x}}\right]\geq {\frac {n}{x}}-{\frac {x-1}{x}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5ea80fb7af13b53e9762e6966ccb3a747bf7b52c)
- 当n为正整数时,有:
其中
表示
除以
的餘數。
- 对任意的整数k和任意实数x,
![{\displaystyle [{k+x}]=k+[x].}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4f43305ca3f5913263e3e82f8e170fc68220a92a)
- 一般的數值修約規則可以表述为将x映射到floor(x + 0.5);
- 高斯符號不是连续函数,但是上半连续的。作为一个分段的常数函数,在其导数有定义的地方,高斯符號导数为零。
- 设x为一个实数,n为整数,则由定义,n ≤ x当且仅当n ≤ floor(x)。
- 當x是正數時,有:
![{\displaystyle \left\lbrack 2x\right\rbrack -2\left\lbrack x\right\rbrack \leqslant 1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3acec739fec1b4ac620b528cec930bd00dcd1f94)
- 用高斯符號可以写出若干个素数公式,但没有什么实际价值,見§ 質數公式。
- 对于非整数的x,高斯符號有如下的傅里叶级数展开:
![{\displaystyle [x]=x-{\frac {1}{2}}+{\frac {1}{\pi }}\sum _{k=1}^{\infty }{\frac {\sin(2\pi kx)}{k}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/879be76c85ac09a82d147b5a058762cb0012cbb0)
- 根据Beatty定理,每个正无理数都可以通过高斯符號制造出一个整数集的分划。
- 最后,对于每个正整数k,其在 p 进制下的表示有
个数位。
由上下取整函數的定義,可見
![{\displaystyle \lfloor x\rfloor \leq \lceil x\rceil ,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d75aab25b2dcbdfe4ce59f321d17548a30c3888f)
等號當且僅當
為整數,即
![{\displaystyle \lceil x\rceil -\lfloor x\rfloor ={\begin{cases}0,&{\text{ 若 }}\ x\in \mathbb {Z} ,\\1,&{\text{ 若 }}\ x\not \in \mathbb {Z} .\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5a999e5bd199fafca75fc10d96a3b0684a40cf44)
實際上,上取整與下取整函數作用於整數
,效果等同恆等函數:
![{\displaystyle \lfloor n\rfloor =\lceil n\rceil =n.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5a88a4bc04ed855e1e71231810a3ca86660aad49)
自變量加負號,相當於將上取整與下取整互換,外面再加負號,即:
![{\displaystyle {\begin{aligned}\lfloor x\rfloor +\lceil -x\rceil &=0,\\-\lfloor x\rfloor &=\lceil -x\rceil ,\\-\lceil x\rceil &=\lfloor -x\rfloor .\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d9458e00bb38c408f5e94d389d7e4db3ae491577)
且:
![{\displaystyle \lfloor x\rfloor +\lfloor -x\rfloor ={\begin{cases}0,&{\text{ 若 }}\ x\in \mathbb {Z} ,\\-1,&{\text{ 若 }}\ x\not \in \mathbb {Z} ,\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cc1ed92e0c8e9612a085b535bcc5a190d89dbcce)
![{\displaystyle \lceil x\rceil +\lceil -x\rceil ={\begin{cases}0,&{\text{ 若 }}\ x\in \mathbb {Z} ,\\1,&{\text{ 若 }}\ x\not \in \mathbb {Z} .\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/076bc950c0cb11010a219769d5e63b6070814447)
至於小數部分
,自變量取相反數會使小數部分變成關於1的「補數」:
![{\displaystyle \{x\}+\{-x\}={\begin{cases}0,&{\text{ 若 }}\ x\in \mathbb {Z} ,\\1,&{\text{ 若 }}\ x\not \in \mathbb {Z} .\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f5344cae1e6bfe172b8eff777ba3ab038c449f59)
上取整、下取整、小數部分皆為冪等函數,即函數疊代兩次的結果等於自身:
![{\displaystyle {\begin{aligned}{\Big \lfloor }\lfloor x\rfloor {\Big \rfloor }&=\lfloor x\rfloor ,\\{\Big \lceil }\lceil x\rceil {\Big \rceil }&=\lceil x\rceil ,\\{\Big \{}\{x\}{\Big \}}&=\{x\}.\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9e33e2b00790e7cfd608186d85c22aa1b13d5b6c)
而多個上取整與下取整依次疊代的效果,相當於最內層一個:
![{\displaystyle {\begin{aligned}{\Big \lfloor }\lceil x\rceil {\Big \rfloor }&=\lceil x\rceil ,\\{\Big \lceil }\lfloor x\rfloor {\Big \rceil }&=\lfloor x\rfloor ,\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3dae706708845d0a651915a67ff6ea6d90cc070d)
因為外層取整函數實際衹作用在整數上,不帶來變化。
若
和
為正整數,且
,則
![{\displaystyle 0\leq \left\{{\frac {m}{n}}\right\}\leq 1-{\frac {1}{|n|}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bec18ad4f6fbaa7e99b70a4afacb9ebd59611691)
若
為正整數,則
![{\displaystyle \left\lfloor {\frac {x+m}{n}}\right\rfloor =\left\lfloor {\frac {\lfloor x\rfloor +m}{n}}\right\rfloor ,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/66824749d7091486e854715f2077f36cd375f61f)
![{\displaystyle \left\lceil {\frac {x+m}{n}}\right\rceil =\left\lceil {\frac {\lceil x\rceil +m}{n}}\right\rceil .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/717d5159a662083812ad3c597fd345d259d97846)
若
為正數,則
![{\displaystyle n=\left\lceil {\frac {n}{m}}\right\rceil +\left\lceil {\frac {n-1}{m}}\right\rceil +\dots +\left\lceil {\frac {n-m+1}{m}}\right\rceil ,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2561eb3ceba1a04dc8c81db12de2149893a8bf5b)
![{\displaystyle n=\left\lfloor {\frac {n}{m}}\right\rfloor +\left\lfloor {\frac {n+1}{m}}\right\rfloor +\dots +\left\lfloor {\frac {n+m-1}{m}}\right\rfloor .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c0a74aeb025495228e1b08ff3864c693b29c23f8)
代
,上式推出:
![{\displaystyle n=\left\lfloor {\frac {n}{2}}\right\rfloor +\left\lceil {\frac {n}{2}}\right\rceil .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ff6460c82b233439659fde2413de97e43f0f35b)
更一般地,對正整數
,有埃爾米特恆等式:[5]
![{\displaystyle \lceil mx\rceil =\left\lceil x\right\rceil +\left\lceil x-{\frac {1}{m}}\right\rceil +\dots +\left\lceil x-{\frac {m-1}{m}}\right\rceil ,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/562255ffe997a9aa1eacd6c04046429b19c7190d)
![{\displaystyle \lfloor mx\rfloor =\left\lfloor x\right\rfloor +\left\lfloor x+{\frac {1}{m}}\right\rfloor +\dots +\left\lfloor x+{\frac {m-1}{m}}\right\rfloor .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3dd5c7696ac3e96258f4e16094cc3476698e1805)
對於正整數
,以下兩式可將上下取整函數互相轉化:
![{\displaystyle \left\lceil {\frac {n}{m}}\right\rceil =\left\lfloor {\frac {n+m-1}{m}}\right\rfloor =\left\lfloor {\frac {n-1}{m}}\right\rfloor +1,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6b946e76ca9799e3bf22356f21ae446eb5eb4140)
![{\displaystyle \left\lfloor {\frac {n}{m}}\right\rfloor =\left\lceil {\frac {n-m+1}{m}}\right\rceil =\left\lceil {\frac {n+1}{m}}\right\rceil -1.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7a32a7aab506ce5b901ed6e5b132071119a139ac)
對任意正整數
和
,有:
![{\displaystyle \sum _{k=1}^{n-1}\left\lfloor {\frac {km}{n}}\right\rfloor ={\frac {(m-1)(n-1)+\gcd(m,n)-1}{2}},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/21702d871cf1de026dda91f2b70b3e3303681a8a)
作為特例,當
和
互質時,上式簡化為
![{\displaystyle \sum _{k=1}^{n-1}\left\lfloor {\frac {km}{n}}\right\rfloor ={\frac {1}{2}}(m-1)(n-1).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4f0396688bbd92cc6b183515b26c87776a7f0f48)
此等式可以幾何方式證明。又由於右式關於
、
對稱,可得
![{\displaystyle \left\lfloor {\frac {m}{n}}\right\rfloor +\left\lfloor {\frac {2m}{n}}\right\rfloor +\dots +\left\lfloor {\frac {(n-1)m}{n}}\right\rfloor =\left\lfloor {\frac {n}{m}}\right\rfloor +\left\lfloor {\frac {2n}{m}}\right\rfloor +\dots +\left\lfloor {\frac {(m-1)n}{m}}\right\rfloor .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c80463c3d8609f3a51f2a8c3f3cdd3218e17bbc7)
更一般地,對正整數
,有
![{\displaystyle {\begin{aligned}&\left\lfloor {\frac {x}{n}}\right\rfloor +\left\lfloor {\frac {m+x}{n}}\right\rfloor +\left\lfloor {\frac {2m+x}{n}}\right\rfloor +\dots +\left\lfloor {\frac {(n-1)m+x}{n}}\right\rfloor \\=&\left\lfloor {\frac {x}{m}}\right\rfloor +\left\lfloor {\frac {n+x}{m}}\right\rfloor +\left\lfloor {\frac {2n+x}{m}}\right\rfloor +\cdots +\left\lfloor {\frac {(m-1)n+x}{m}}\right\rfloor .\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/05b7ffe786b07d7c69d786771419f914b97643ea)
上式算是一種「互反律」(reciprocity law),與§ 二次互反律有關。
高斯給出二次互反律的第三個證明,經艾森斯坦修改後,有以下兩個主要步驟。
設
、
為互異奇質數,又設
![{\displaystyle n={\frac {q-1}{2}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/31b3d9aebe633c023233c8ee52b24379b8edadaf)
首先,利用高斯引理,證明勒让德符号可表示為和式:
![{\displaystyle \left({\frac {q}{p}}\right)=(-1)^{\left\lfloor {\frac {q}{p}}\right\rfloor +\left\lfloor {\frac {2q}{p}}\right\rfloor +\dots +\left\lfloor {\frac {mq}{p}}\right\rfloor },}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ed79305f16405ffa6115a2dc3010c8725d369fe2)
同樣
![{\displaystyle \left({\frac {p}{q}}\right)=(-1)^{\left\lfloor {\frac {p}{q}}\right\rfloor +\left\lfloor {\frac {2p}{q}}\right\rfloor +\dots +\left\lfloor {\frac {np}{q}}\right\rfloor }.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/56e9d891515bf5412e6aa52aa13cc08863908abf)
其後,採用幾何論證,證明
![{\displaystyle \left\lfloor {\frac {q}{p}}\right\rfloor +\left\lfloor {\frac {2q}{p}}\right\rfloor +\dots +\left\lfloor {\frac {mq}{p}}\right\rfloor +\left\lfloor {\frac {p}{q}}\right\rfloor +\left\lfloor {\frac {2p}{q}}\right\rfloor +\dots +\left\lfloor {\frac {np}{q}}\right\rfloor =mn.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ed674b9dfa93cc24ed95292189a8d0b4932e3776)
總結上述兩步,得
![{\displaystyle \left({\frac {p}{q}}\right)\left({\frac {q}{p}}\right)=(-1)^{mn}=(-1)^{{\frac {p-1}{2}}{\frac {q-1}{2}}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/107230eddab9380f27bd1fc2b6871f1c300efbf2)
此即二次互反律。一些小整數模奇質數
的二次特徵標,可以高斯符號表示,如:
![{\displaystyle \left({\frac {2}{p}}\right)=(-1)^{\left\lfloor {\frac {p+1}{4}}\right\rfloor },}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0194dd4311e17974ecd16a714d8fcc9955a5cd72)
![{\displaystyle \left({\frac {3}{p}}\right)=(-1)^{\left\lfloor {\frac {p+1}{6}}\right\rfloor }.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/792e976fc299949d1a8094b3e02aa0552a7ef3d7)
下取整函數出現於若干刻畫質數的公式之中。舉例,因為
在
整除
時等於
,否則為
,所以正整數
為質數当且仅当[11]
![{\displaystyle \sum _{m=1}^{\infty }\left(\left\lfloor {\frac {n}{m}}\right\rfloor -\left\lfloor {\frac {n-1}{m}}\right\rfloor \right)=2.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f9881d0f22464275398693724fb7063b188e5755)
除表示質數的條件外,還可以寫出公式使其取值為質數。例如,記第
個質數為
,任選一個整數
,然後定義實數
為
![{\displaystyle \alpha =\sum _{m=1}^{\infty }p_{m}r^{-m^{2}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bf02877ba996f8884e7ead7d57944017f3498d43)
則衹用取整、冪、四則運算可以寫出質數公式:
![{\displaystyle p_{n}=\left\lfloor r^{n^{2}}\alpha \right\rfloor -r^{2n-1}\left\lfloor r^{(n-1)^{2}}\alpha \right\rfloor .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/90bcc72261e391cc4e3d104c07491dbe39e9d00f)
類似還有米尔斯常数
,使
![{\displaystyle \left\lfloor \theta ^{3}\right\rfloor ,\left\lfloor \theta ^{9}\right\rfloor ,\left\lfloor \theta ^{27}\right\rfloor ,\dots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/3bcc1a49888c8d60157dde4dfe390d8af7558a04)
皆為質數。[13]
若不疊代三次方函數,改為疊代以
為㡳的指數函數,亦有
使
![{\displaystyle \left\lfloor 2^{\omega }\right\rfloor ,\left\lfloor 2^{2^{\omega }}\right\rfloor ,\left\lfloor 2^{2^{2^{\omega }}}\right\rfloor ,\dots }](https://wikimedia.org/api/rest_v1/media/math/render/svg/35a5047c7cc7d89def04ce577f4ca56a4476540e)
皆為質數。[13]
以質數計算函數
表示小於或等於
的質數個數。由威尔逊定理,可知
![{\displaystyle \pi (n)=\sum _{j=2}^{n}\left\lfloor {\frac {(j-1)!+1}{j}}-\left\lfloor {\frac {(j-1)!}{j}}\right\rfloor \right\rfloor .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f6ab9152a6baaadff6a76e3ddd308bee75394c6e)
又或者,當
時:[15]
![{\displaystyle \pi (n)=\sum _{j=2}^{n}\left\lfloor {\frac {1}{\sum _{k=2}^{j}\left\lfloor \left\lfloor {\frac {j}{k}}\right\rfloor {\frac {k}{j}}\right\rfloor }}\right\rfloor .}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c8242999a9a665cabdd1ee6c89792eaf43a6d13d)
本小節的公式未有任何實際用途。[16][17]
- 对于所有实数x,有:
![{\displaystyle \left\lbrack {\frac {x}{2}}\right\rbrack ={\frac {1}{4}}((-1)^{[x]}-1+2[x])}](https://wikimedia.org/api/rest_v1/media/math/render/svg/830df67fc2f38714e73e32a850fdfdf898e2e9ee)
![{\displaystyle \left\lbrack {\frac {x}{3}}\right\rbrack ={\frac {-2}{\sqrt {3}}}\sin({\frac {2\pi }{3}}[x]+{\frac {\pi }{3}})+1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e0527c35b145c3d804ab49ff0e56069f5252f4f2)
- 设x为一个实数,n为整数,则
![{\displaystyle \sum _{k=0}^{n-1}E(x+{\frac {k}{n}})=E(nx)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a1a23373d2ee4718496326600e99d5e0a08f327c)
![{\displaystyle E({\frac {1}{n}}E(nx))=E(x)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cdc76729d9ab3993743da3b913cc37c3dba04c40)
- 如果x为整数,则
![{\displaystyle E(x)+E(-x)=0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a2ae610379f3cd41e55a949613027491bb43562e)
- 否则
![{\displaystyle E(x)+E(-x)=-1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/10dfecbf2c5b1bf439345cd39b2ac642aebda406)
截尾函数