取整函数:修订间差异

来自testwiki
跳转到导航 跳转到搜索
imported>Chem He
移除重複內容
 
(没有差异)

2025年3月14日 (五) 04:06的最新版本

Template:NoteTA

下取整函数
上取整函数

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

常用的取整函数有两个,分别是下取整函数Template:Lang-en)和上取整函数Template:Lang)。

下取整函数即為取底符號,在数学中一般记作[x]或者x或者E(x),在计算机科学中一般记作floor(x),表示不超过x的整数中最大的一个。

[x]=max{nnx}.

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

下取整函数的符号用方括号表示([x]),称作高斯符号,首次出現是在卡爾·弗里德里希·高斯的數學著作《算术研究》。


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

x=min{nxn}.

举例来说,3.633=456=562=22.263=2

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

性质

对于高斯符號,有如下性质。

  • 按定义:
    [x]x<[x]+1 当且仅当x为整数时取等号。
  • 设x和n为正整数,则:
    [nx]nxx1x
  • n为正整数时,有:
    [xn]=xxmodnn, 其中xmodn表示x除以n的餘數。
  • 对任意的整数k和任意实数x
    [k+x]=k+[x].
  • 一般的數值修約規則可以表述为将x映射到floor(x + 0.5);
  • 高斯符號不是连续函数,但是上半连续的。作为一个分段的常数函数,在其导数有定义的地方,高斯符號导数为零。
  • x为一个实数,n为整数,则由定义,nx当且仅当n ≤ floor(x)。
  • x是正數時,有:
    [2x]2[x]1
  • 用高斯符號可以写出若干个素数公式,但没有什么实际价值,見Template:Section link
  • 对于非整数的x,高斯符號有如下的傅里叶级数展开:
    [x]=x12+1πk=1sin(2πkx)k.
  • 根据Beatty定理,每个正无理数都可以通过高斯符號制造出一个整数集的分划
  • 最后,对于每个正整数k,其在 p 进制下的表示有 [logp(k)]+1数位

函數間之關係

由上下取整函數的定義,可見

xx,

等號當且僅當x為整數,即

xx={0, 若  x,1, 若  x∉.

實際上,上取整與下取整函數作用於整數n,效果等同恆等函數

n=n=n.

自變量加負號,相當於將上取整與下取整互換,外面再加負號,即:

x+x=0,x=x,x=x.

且:

x+x={0, 若  x,1, 若  x∉,
x+x={0, 若  x,1, 若  x∉.

至於小數部分{x}=xx,自變量取相反數會使小數部分變成關於1的「補數」:

{x}+{x}={0, 若  x,1, 若  x∉.

上取整、下取整、小數部分皆為冪等函數,即函數疊代兩次的結果等於自身:

x=x,x=x,{{x}}={x}.

而多個上取整與下取整依次疊代的效果,相當於最內層一個:

x=x,x=x,

因為外層取整函數實際衹作用在整數上,不帶來變化。

mn為正整數,且n0,則

0{mn}11|n|.

n為正整數,則Template:Sfn

x+mn=x+mn,
x+mn=x+mn.

m為正數,則Template:Sfn

n=nm+n1m++nm+1m,
n=nm+n+1m++n+m1m.

m=2,上式推出:

n=n2+n2.

更一般地,對正整數m,有Template:Link-enTemplate:Sfn

mx=x+x1m++xm1m,
mx=x+x+1m++x+m1m.

對於正整數m,以下兩式可將上下取整函數互相轉化:Template:Sfn

nm=n+m1m=n1m+1,
nm=nm+1m=n+1m1.

對任意正整數mn,有:Template:Sfn

k=1n1kmn=(m1)(n1)+gcd(m,n)12,

作為特例,當mn互質時,上式簡化為

k=1n1kmn=12(m1)(n1).

此等式可以幾何方式證明。又由於右式關於mn對稱,可得

mn+2mn++(n1)mn=nm+2nm++(m1)nm.

更一般地,對正整數m,n,有

xn+m+xn+2m+xn++(n1)m+xn=xm+n+xm+2n+xm++(m1)n+xm.

上式算是一種「互反律」(Template:LangTemplate:Sfn,與Template:Section link有關。

應用

二次互反律

高斯給出二次互反律的第三個證明,經艾森斯坦修改後,有以下兩個主要步驟。Template:SfnTemplate:Sfn

pq為互異奇質數,又設

m=p12, n=q12.

首先,利用高斯引理,證明勒让德符号可表示為和式:

(qp)=(1)qp+2qp++mqp,

同樣

(pq)=(1)pq+2pq++npq.

其後,採用幾何論證,證明

qp+2qp++mqp+pq+2pq++npq=mn.

總結上述兩步,得

(pq)(qp)=(1)mn=(1)p12q12.

此即二次互反律。一些小整數模奇質數p的二次特徵標,可以高斯符號表示,如:Template:Sfn

(2p)=(1)p+14,
(3p)=(1)p+16.

質數公式

下取整函數出現於若干刻畫質數的公式之中。舉例,因為nmn1mm整除n時等於1,否則為0,所以正整數n為質數当且仅当[3]

m=1(nmn1m)=2.

除表示質數的條件外,還可以寫出公式使其取值為質數。例如,記第n個質數為pn,任選一個整數r>1,然後定義實數α

α=m=1pmrm2.

則衹用取整、冪、四則運算可以寫出質數公式:Template:Sfn

pn=rn2αr2n1r(n1)2α.

類似還有米尔斯常数θ=1.3064,使

θ3,θ9,θ27,

皆為質數。[4]

若不疊代三次方函數,改為疊代以2為㡳的指數函數,亦有ω=1.9287800使

2ω,22ω,222ω,

皆為質數。[4]

質數計算函數π(x)表示小於或等於x的質數個數。由威尔逊定理,可知Template:Sfn

π(n)=j=2n(j1)!+1j(j1)!j.

又或者,當n2時:Template:Sfn

π(n)=j=2n1k=2jjkkj.

本小節的公式未有任何實際用途。[5][6]

其它等式

  • 对于所有实数x,有:
x2=14((1)x1+2x)
x3=13(23sin(2π3x+π3)1+x)

参考来源

Template:Reflist

另见

截尾函数

  1. Ronald Graham, Donald Knuth and Template:Tsl. "Concrete Mathematics". Addison-Wesley, 1999. Chapter 3, "Integer Functions".
  2. Template:Cite book
  3. Template:Harvnb,求和式的上限可以換成n。尚有一個等價的表述:n>1為質數當且僅當m=1n(nmn1m)=1.
  4. 4.0 4.1 Template:Harvnb
  5. Template:Harvnb(譯文):「雖然該些公式毫不實用⋯⋯但邏輯學家希望清晰明白不同公理體系,如何推導出算術各方面,則或許與此有關⋯⋯」
  6. Template:Harvnb(譯文):「若數α的準確值⋯⋯可以無關質數的方式表達,則該些公式之任一(或一切類似公式)的地位將截然不同。似乎沒有此種可能,但卻不能完全排除。」