ฟังก์ชันพื้นและฟังก์ชันเพดาน

จาก testwiki
ไปยังการนำทาง ไปยังการค้นหา
กราฟของฟังก์ชันพื้น
กราฟของฟังก์ชันเพดาน

ในทางคณิตศาสตร์และวิทยาการคอมพิวเตอร์ ฟังก์ชันพื้น (แม่แบบ:Langx) คือฟังก์ชันที่จับคู่จำนวนจริงไปยังจำนวนเต็มที่อยู่ก่อนหน้า นั่นคือ floor (x) เป็นจำนวนเต็มมากที่สุดที่ไม่มากกว่า x [1]

ส่วน ฟังก์ชันเพดาน (แม่แบบ:Langx) คือฟังก์ชันที่จับคู่จำนวนจริงไปยังจำนวนเต็มที่อยู่ถัดจากจำนวนนั้น นั่นคือ ceiling (x) คือจำนวนเต็มน้อยที่สุดที่ไม่น้อยกว่า x [2]

กราฟของฟังก์ชันพื้นและเพดานทั้งหมด มีลักษณะคล้ายฟังก์ชันขั้นบันได แต่ไม่ใช่ฟังก์ชันขั้นบันได เนื่องจากมีช่วงบนแกน x เป็นจำนวนอนันต์

สัญกรณ์

เกาส์ได้แนะนำสัญกรณ์วงเล็บเหลี่ยม [x] สำหรับแทนฟังก์ชันพื้น ในการพิสูจน์การแลกเปลี่ยนกำลังสอง (quadratic reciprocity) ของเขาเมื่อ ค.ศ. 1808 [3] สิ่งนี้เป็นบรรทัดฐานในคณิตศาสตร์เรื่อยมา [4] จนกระทั่งอิเวอร์สัน (Kenneth E. Iverson) ได้แนะนำให้ใช้ชื่อ "floor" และ "ceiling" พร้อมกับทั้งแนะนำสัญกรณ์ ⌊x⌋ และ ⌈x⌉ สำหรับฟังก์ชันทั้งสองตามลำดับ เพื่อเขียนโปรแกรมภาษาเอพีแอลเมื่อ ค.ศ. 1962 [5][6] ปัจจุบันสัญกรณ์ทั้งสองแบบก็ยังมีการใช้กันอยู่ในคณิตศาสตร์ สำหรับบทความนี้จะอธิบายด้วยสัญกรณ์ของอิเวอร์สัน

ฟังก์ชันพื้นอาจเรียกว่าเป็น ฟังก์ชันจำนวนเต็มมากสุด (greatest integer function) หรือ อองเทียร์ (entier หมายถึงจำนวนเต็มในภาษาฝรั่งเศส) และสำหรับฟังก์ชันพื้นของจำนวนที่ไม่เป็นลบ x อาจเรียกว่าเป็น ภาคจำนวนเต็ม (integral part) ของ x ในภาษาโปรแกรมอื่นที่นอกเหนือจากภาษาเอพีแอล มักจะใช้สัญกรณ์ว่า ENTIER (x) (ภาษาอัลกอล), floor (x) , หรือไม่ก็ int (x) (ภาษาซี/ซีพลัสพลัส) [7] ในทางคณิตศาสตร์ สัญกรณ์สำหรับฟังก์ชันนี้สามารถเขียนเป็นวงเล็บเหลี่ยมตัวหนาหรือซ้อนสองก็ได้ [[x]] [8]

ส่วนฟังก์ชันเพดานอาจเรียกว่าเป็น ฟังก์ชันจำนวนเต็มน้อยสุด (least integer function) ในภาษาโปรแกรมอื่นมักจะใช้แทนด้วย ceil (x) หรือ ceiling (x) ในทางคณิตศาสตร์ มีสัญกรณ์อีกแบบหนึ่งคือวงเล็บเหลี่ยมตัวหนาหรือซ้อนสองที่หันออก ]]x[[ หรือใช้เพียงแค่วงเล็บเหลี่ยมธรรมดาหันออกก็ได้ ]x[ [9]

ตัวอย่าง

ค่า x ฟังก์ชันพื้น ⌊x ฟังก์ชันเพดาน ⌈x ภาคเศษส่วน {x}
2.7 2 3 0.7
−2.7 −3 −2 0.3
−2 −2 −2 0
12/5 = 2.4 2 3 2/5 = 0.4

สำหรับนิยามของภาคเศษส่วน ดูในหัวข้อถัดไป

นิยามและสมบัติ

ในสูตรคณิตศาสตร์ต่อไปนี้ สมมติให้ x, y เป็นจำนวนจริง k, m, n เป็นจำนวนเต็ม และ คือเซตของจำนวนเต็ม (อันประกอบด้วยจำนวนเต็มบวก จำนวนเต็มลบ และศูนย์)

ฟังก์ชันพื้นและเพดานสามารถนิยามได้ด้วยเซตดังนี้

x=max{nnx}
x=min{nnx}

เนื่องจากช่วงครึ่งเปิดความยาวหนึ่งหน่วย จะมีจำนวนเต็มเพียงหนึ่งตัวในช่วงนั้น ดังนั้นสำหรับจำนวนจริง x ใด ๆ จะมีจำนวนเต็ม m และ n ที่ทำให้

x1<mxn<x+1

เราจะได้ x=m และ x=n ซึ่งก็ถือว่าเป็นนิยามอย่างหนึ่งเช่นกัน

นอกจากนี้ก็ยังมี {x}=xx และ xmody=xyxy

การเทียบเท่า

สูตรเหล่านี้สามารถใช้ถอดฟังก์ชันพื้นและฟังก์ชันเพดานออกจากนิพจน์ [10]

x=nnx<n+1x=nn1<xnx=nx1<nxx=nxn<x+1

และสำหรับอสมการ

x<nx<nn<xn<xxnxnnxnx

สูตรเหล่านี้แสดงให้เห็นถึงผลจากการบวกด้วยจำนวนเต็ม n ภายในฟังก์ชัน

x+n=x+nx+n=x+n{x+n}={x}

อย่างไรก็ตาม สูตรด้านบนอาจไม่เป็นจริงเสมอไปถ้า n ไม่ใช่จำนวนเต็ม แต่จะได้ผลดังนี้แทน

x+yx+yx+y+1x+y1x+yx+y

ความสัมพันธ์ระหว่างฟังก์ชัน

จากนิยามเราสามารถสรุปได้ว่า

xx กรณีที่มีค่าเท่ากันคือเมื่อ x เป็นจำนวนเต็ม
xx={0 if x1 if x

สำหรับจำนวนเต็ม n ประโยคนี้จะเป็นจริง

n=n=n

สลับเครื่องหมายในอาร์กิวเมนต์ของฟังก์ชันพื้นและเพดาน

x+x=0
x+x={0 if x1 if x
x+x={0 if x1 if x

สลับเครื่องหมายในอาร์กิวเมนต์ของภาคเศษส่วน

{x}+{x}={0 if x1 if x

ฟังก์ชันพื้น ฟังก์ชันเพดาน และภาคเศษส่วน เป็นฟังก์ชันนิจพล

x=xx=x{{x}}={x}

ใช้ฟังก์ชันพื้นและเพดานซ้อนกัน ผลลัพธ์ที่ได้คือฟังก์ชันที่อยู่ในสุด

x=xx=x

กำหนดให้ y มีค่าคงตัว x mod y จะเป็นนิจพล

(xmody)mody=xmody

และจากนิยาม

{x}=xmod1

ผลหาร

ถ้า n ≠ 0 แล้ว

0{mn}11|n|

ถ้า n เป็นจำนวนเต็มบวก [11]

x+mn=x+mn
x+mn=x+mn

ถ้า m เป็นจำนวนเต็มบวก [12]

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

ซึ่งเมื่อ m = 2 จะทำให้เกิดสมบัตินี้

n=n2+n2

กรณีทั่วไปสำหรับจำนวนเต็มบวก m [13]

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

สูตรต่อไปนี้สามารถเปลี่ยนระหว่างฟังก์ชันพื้นกับฟังก์ชันเพดาน เมื่อ m เป็นจำนวนเต็มบวก [14]

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

ถ้า m และ n เป็นจำนวนเต็มบวกและเป็นจำนวนเฉพาะสัมพัทธ์ จะได้

i=1n1imn=12(m1)(n1)

เนื่องจากสูตรข้างต้น m และ n มีความสมมาตรต่อกัน จึงสามารถกระจายฝั่งซ้ายของเครื่องหมายเท่ากับได้ดังนี้

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

สิ่งนี้เรียกว่า กฎการแลกเปลี่ยน [15]

ผลหารซ้อน

สำหรับจำนวนเต็มบวก m และ n และจำนวนจริง x

x/mn=xmn
x/mn=xmn

ความต่อเนื่อง

ฟังก์ชันทั้งหมดที่กล่าวมาไม่เป็นฟังก์ชันต่อเนื่อง แต่เป็นฟังก์ชันเชิงเส้นเป็นช่วง ซึ่ง ⌊x⌋ กับ ⌈x⌉ เป็นฟังก์ชันคงตัวในแต่ละช่วง และไม่ต่อเนื่องที่จำนวนเต็ม {x} ก็ไม่ต่อเนื่องที่จำนวนเต็มเช่นกัน แต่ไม่ได้เป็นฟังก์ชันคงตัว ส่วน x mod y เป็นฟังก์ชันที่ไม่ต่อเนื่องที่พหุคูณของ y ถ้าให้ y มีค่าคงตัว

x⌋ ถือได้ว่าเป็นฟังก์ชันกึ่งต่อเนื่องบน (upper semi-continuous function) และ ⌈x⌉ กับ {x} เป็นฟังก์ชันกึ่งต่อเนื่องล่าง (lower semi-continuous function) ส่วน x mod y จะเป็นฟังก์ชันกึ่งต่อเนื่องล่างเมื่อ y เป็นจำนวนบวก และเป็นฟังก์ชันกึ่งต่อเนื่องบนเมื่อ y เป็นจำนวนลบ

การกระจายอนุกรม

เนื่องจากฟังก์ชันทั้งหมดที่กล่าวมาไม่ต่อเนื่อง จึงไม่มีฟังก์ชันใดที่เขียนแทนด้วยการกระจายอนุกรมกำลังได้ และเนื่องจากฟังก์ชันพื้นและเพดานไม่เป็นคาบ (periodic) สองฟังก์ชันนี้จึงไม่มีการกระจายอนุกรมฟูรีเย

สำหรับ x mod y โดยที่ y มีค่าคงตัว มีการกระจายฟูรีเยดังนี้ [16]

xmody=y2yπk=1sin(2πkxy)k

ด้วยสมบัติที่ว่า {x} = x mod 1 ดังนั้นจะได้

{x}=121πk=1sin(2πkx)k

ในจุดที่เกิดความไม่ต่อเนื่อง อนุกรมฟูรีเยจะลู่เข้าค่าใดค่าหนึ่งที่เป็นค่าเฉลี่ยของลิมิตทางซ้ายและทางขวา สำหรับ x mod y ซึ่ง y มีค่าคงตัว อนุกรมฟูรีเยจะลู่เข้า y / 2 ที่ตำแหน่งพหุคูณของ y ส่วนในจุดอื่น ๆ ที่มีความต่อเนื่อง อนุกรมจะลู่เข้าค่าจริง

จากสูตรที่ว่า {x} = x − ⌊x⌋ จึงสรุปได้ว่า

x=x12+1πk=1sin(2πkx)k

การประยุกต์ใช้

ภาคเศษส่วน

ภาคเศษส่วน (fractional part) เป็นฟังก์ชันฟันเลื่อย เขียนแทนด้วย {x} สำหรับทุกจำนวนจริง x ซึ่งนิยามโดยสูตรนี้ [17]

{x}=xx

ภาคเศษส่วนของ x จะมีค่าอยู่ระหว่าง 0 กับ 1 นั่นคือ

0{x}<1

ถ้า x เป็นจำนวนบวก ฟังก์ชันพื้นของ x สามารถสรุปได้อย่างง่ายว่า เป็นค่า x ที่ตัดตัวเลขหลังจุดทศนิยมออกไป ดังนั้นภาคเศษส่วนของ x ก็คือค่า x ที่ตัดตัวเลขหน้าจุดทศนิยมออกไป

มอดุโล

การดำเนินการมอดุโล (modulo) เขียนแทนด้วย x mod y สำหรับจำนวนจริง x และ y โดยที่ y ≠ 0 นิยามโดยสูตรนี้

xmody=xyxy

ผลลัพธ์ของ x mod y จะมีค่าอยู่ระหว่าง 0 ถึง y นั่นคือ

y>00xmody<y
y<00xmody>y

ถ้า x เป็นจำนวนเต็มและ y เป็นจำนวนเต็มบวก

(xmody)x(mody)

ฟังก์ชัน x mod y โดยที่ y เป็นค่าคงตัว จะเป็นฟังก์ชันฟันเลื่อยเช่นกัน

การแลกเปลี่ยนกำลังสอง

การพิสูจน์การแลกเปลี่ยนกำลังสอง (quadratic reciprocity) ของเกาส์ครั้งที่สาม ซึ่งปรับปรุงแก้ไขโดยไอเซนสไตน์ (Ferdinand Eisenstein) มีสองขั้นตอนพื้นฐานดังนี้ [18][19]

กำหนดให้ p และ q เป็นจำนวนเฉพาะที่เป็นจำนวนคี่คนละตัวกัน และกำหนดให้

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 [20]

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

การปัดเศษ

แม่แบบ:บทความหลัก การปัดเศษจำนวนบวก x ไปยังจำนวนเต็มที่อยู่ใกล้ที่สุด จะใช้วิธีการปัดเศษโดยครึ่งหนึ่งให้ปัดขึ้นโดยปกติ สามารถเขียนได้เป็น x+0.5

จำนวนหลัก

จำนวนหลักของจำนวนเต็มบวก k ในฐาน b คำนวณได้จาก logbk+1

ตัวประกอบของแฟกทอเรียล

กำหนดให้ n เป็นจำนวนเต็มบวกและ p เป็นจำนวนเฉพาะ (ซึ่งเป็นบวกเช่นกัน) กำลังสูงสุดของ p ที่สามารถหาร n! (แฟกทอเรียลของ n) ได้ลงตัว คำนวณได้จากสูตรนี้ [21]

np+np2+np3+

ผลรวมของอนุกรมนี้จำกัด เนื่องจากฟังก์ชันพื้นจะให้ผลลัพธ์เป็นศูนย์เมื่อ pk > n

ลำดับบีตตี

ลำดับบีตตี (Beatty sequence) ได้แสดงไว้ว่าจำนวนอตรรกยะที่เป็นบวกทุกจำนวน เมื่อผ่านฟังก์ชันพื้นแล้วจะเป็นส่วนหนึ่งของจำนวนธรรมชาติซึ่งเป็นสมาชิกของลำดับสองลำดับคู่กัน [22]

ค่าคงตัวออยเลอร์-แมสเชโรนี

สูตรที่ใช้แสดงค่าคงตัวออยเลอร์-แมสเชโรนี γ = 0.57721 56649 … ที่เกี่ยวกับฟังก์ชันพื้นและเพดาน ตัวอย่างเช่น [23]

γ=1(1x1x)dx
γ=limn1nk=1n(nknk)
γ=k=2(1)klog2kk=1213+2(1415+1617)+3(18115)+

ฟังก์ชันซีตาของรีมันน์

ฟังก์ชันภาคเศษส่วนปรากฏในการแจกแจงปริพันธ์ของฟังก์ชันซีตาของรีมันน์ ซึ่งสามารถพิสูจน์ได้อย่างตรงไปตรงมาด้วยการหาปริพันธ์โดยการแยกส่วน [24] โดยสมมติว่า φ (x) คือฟังก์ชันใด ๆ ที่มีความต่อเนื่องและหาอนุพันธ์ได้ในช่วงปิด [a, b]

a<nbϕ(n)=abϕ(x)dx+ab({x}12)ϕ(x)dx+({a}12)ϕ(a)({b}12)ϕ(b)

กำหนดให้ φ (n) = ns สำหรับส่วนจริงของ s ที่มากกว่า 1 และกำหนดให้ a, b เป็นจำนวนเต็ม ซึ่ง b มีค่าเข้าใกล้อนันต์ จะได้

ζ(s)=s112{x}xs+1dx+1s1+12

สูตรนี้สามารถใช้ได้กับทุกค่าของ s ที่มีส่วนจริงมากกว่า −1 (ยกเว้นเมื่อ s = 1 เพราะจุดนั้นเป็นโพล) และเมื่อรวมเข้ากับการกระจายฟูรีเยของ {x} จะทำให้สามารถใช้ฟังก์ชันซีตาได้กับทั้งระนาบเชิงซ้อน และใช้สำหรับพิสูจน์สมการเชิงฟังก์ชัน [25]

สำหรับ s = σ + i t ภายในแถบวิกฤต (critical strip) เช่น 0 < σ < 1 Balthasar van der Pol ได้ใช้สูตรนี้เพื่อสร้างคอมพิวเตอร์แอนะล็อกสำหรับคำนวณรากของฟังก์ชันซีตาเมื่อ ค.ศ. 1974 [26]

ζ(s)=seσω(eωeω)eitωdω

สูตรเกี่ยวกับจำนวนเฉพาะ

n จะเป็นจำนวนเฉพาะ ก็ต่อเมื่อ [27]

m=1(nmn1m)=2

กำหนดให้ r > 1 เป็นจำนวนเต็ม, pn คือจำนวนเฉพาะตัวที่ n และ α ซึ่งนิยามโดย

α=m=1pmrm2

เราจะได้ว่า [28]

pn=rn2αr2n1r(n1)2α

มีจำนวน θ = 1.3064… ซึ่งมีสมบัติว่า จำนวนทั้งหมดในลำดับ θ3,θ9,θ27, เป็นจำนวนเฉพาะ [29]

และมีจำนวน ω = 1.9287800… ซึ่งมีสมบัติว่า จำนวนทั้งหมดในลำดับ 2ω,22ω,222ω, เป็นจำนวนเฉพาะ [30]

π (x) เป็นฟังก์ชันนับจำนวนเฉพาะ คือนับว่ามีจำนวนเฉพาะอยู่เท่าไรที่มีค่าน้อยกว่าหรือเท่ากับ x ซึ่งเป็นการลดทอนมาจากทฤษฎีบทของวิลสันที่ว่า [31]

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

และถ้าหาก n ≥ 2 จะได้ [32]

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

แต่สูตรในส่วนนี้ที่กล่าวมาทั้งหมด ไม่มีการนำไปใช้จริงในทางปฏิบัติ

ข้อปัญหาที่แก้ได้

รามานุจันได้ส่งข้อปัญหาที่เกี่ยวกับฟังก์ชันพื้นเหล่านี้ลงใน Journal of the Indian Mathematical Society [33]

ถ้า n เป็นจำนวนเต็มบวก จงพิสูจน์ว่า

  1. n3+n+26+n+46=n2+n+36
  2. 12+n+12=12+n+14
  3. n+n+1=4n+2

ข้อปัญหาที่แก้ไม่ได้

จากการศึกษาข้อปัญหาของวาริง ได้นำไปสู่ปัญหาที่ยังไม่สามารถแก้ได้จนปัจจุบัน นั่นคือ

จริงหรือไม่ที่จำนวนเต็มบวก k ใด ๆ โดยที่ k ≥ 6 ทำให้เงื่อนไขนี้เป็นจริง [34]

3k2k(32)k>2k(32)k2

เคิร์ต มาห์เลอร์ เคยพิสูจน์และสรุปว่า มีเพียงจำนวนจำกัดจำนวนหนึ่งเท่านั้นสำหรับ k ที่ตรงตามเงื่อนไขข้างต้น นอกเหนือจากนั้นยังไม่สามารถสรุปได้ [35]

การใช้งานในคอมพิวเตอร์

กราฟของการแปลงเป็นจำนวนเต็ม (int)

ภาษาโปรแกรม

ภาษาซี ภาษาซีพลัสพลัส และภาษาอื่น ๆ ที่เกี่ยวข้อง (เช่นภาษาซีชาร์ป ภาษาจาวา) มีฟังก์ชันมาตรฐาน floor () สำหรับฟังก์ชันพื้น [36] และ ceil () สำหรับฟังก์ชันเพดาน [37]

นอกจากนี้ยังมีอีกวิธีการหนึ่งคือการแปลงจำนวนจุดลอยตัว (floating point) ไปเป็นจำนวนเต็มโดยการกำกับชนิดข้อมูล (int) value ซึ่งจะทำให้ตัวเลขที่อยู่หลังจุดทศนิยมถูกตัดออกไปทั้งหมด ไม่ว่าจำนวนนั้นจะเป็นบวกหรือลบ หรือกล่าวอีกนัยหนึ่งคือ ถูกปัดเศษไปยังค่าศูนย์ [38]

เชิงอรรถ

แม่แบบ:รายการอ้างอิง

อ้างอิง

แม่แบบ:เริ่มอ้างอิง

แม่แบบ:จบอ้างอิง

ดูเพิ่ม

  1. Graham, Knuth, & Patashnik, Ch. 3.1
  2. Graham, Knuth, & Patashnik, Ch. 3.1
  3. Lemmermeyer, pp. 10, 23
  4. ตัวอย่างเช่น Cassels, Hardy & Wright, and Ribenboim ใช้สัญกรณ์ของเกาส์ ในขณะที่ Graham, Knuth & Patashnik และ Crandall & Pomerance ใช้สัญกรณ์ของอิเวอร์สัน
  5. Higham, p. 25
  6. Iverson
  7. Sullivan, p. 86
  8. Mathwords: Floor Function
  9. Mathwords: Ceiling Function
  10. Graham, Knuth, & Patashink, Ch. 3
  11. Graham, Knuth, & Patashnik, p. 72
  12. Graham, Knuth, & Patashnik, p. 85
  13. Graham, Knuth, & Patashnik, p. 85 and Ex. 3.15
  14. Graham, Knuth, & Patashnik, Ex. 3.12
  15. Graham, Knuth, & Patashnik, p. 94
  16. Titchmarsh, p. 15, Eq. 2.1.7
  17. Graham, Knuth, & Patashnik, p. 70
  18. Lemmermeyer, § 1.4, Ex. 1.32-1.33
  19. Hardy & Wright, §§ 6.11-6.13
  20. Lemmermeyer, p. 25
  21. Hardy & Wright, Th. 416
  22. Graham, Knuth, & Patashnik, pp. 77-78
  23. สูตรเหล่านี้มาจากบทความ ค่าคงตัวออยเลอร์-แมสเชโรนี และยังมีอีกมาก
  24. Titchmarsh, p. 13
  25. Titchmarsh, pp.14-15
  26. Crandall & Pomerance, p. 391
  27. Crandall & Pomerance, Ex. 1.3, p. 46
  28. Hardy & Wright, § 22.3
  29. Ribenboim, p. 186
  30. Ribenboim, p. 186
  31. Ribenboim, p. 181
  32. Crandall & Pomerance, Ex. 1.4, p. 46
  33. Ramanujan, Question 723, Papers p. 332
  34. Hardy & Wright, p. 337
  35. Mahler, K. On the fractional parts of the powers of a rational number II, 1957, Mathematika, 4, pages 122-124
  36. แม่แบบ:Cite web
  37. แม่แบบ:Cite web
  38. ISO standard for C, § 6.3.1.4, p. 43.