← กลับไปยังบทความทั้งหมด

ทฤษฎีบทของเซกเคนดอร์ฟ การแทนค่าจำนวนเต็มด้วยลำดับฟีโบนักชี

สรุปใจความสำคัญ

  • จำนวนเต็มบวกทุกจำนวนสามารถเขียนเป็นผลรวมของจำนวนฟีโบนักชีที่ไม่ต่อเนื่องกันได้
  • การแทนค่าแบบเซกเคนดอร์ฟมีเพียงรูปแบบเดียว (Unique) สำหรับจำนวนเต็มบวกแต่ละจำนวน
  • สามารถหาการแทนค่านี้ได้โดยใช้อัลกอริทึมแบบละโมบ (Greedy Algorithm)
  • เป็นพื้นฐานสำคัญในการสร้างระบบการเข้ารหัสแบบฟีโบนักชี (Fibonacci coding)

ทฤษฎีบทของเซกเคนดอร์ฟ (Zeckendorf's theorem) เป็นหลักการทางคณิตศาสตร์ที่ตั้งชื่อตาม Edouard Zeckendorf นักคณิตศาสตร์สมัครเล่น โดยทฤษฎีนี้กล่าวถึงวิธีการแทนค่าจำนวนเต็มบวกใดๆ ในรูปของผลรวมของจำนวนในลำดับฟีโบนักชี (Fibonacci numbers) ที่มีคุณสมบัติเฉพาะตัว

นิยามของทฤษฎีบท

ทฤษฎีบทของเซกเคนดอร์ฟระบุว่า จำนวนเต็มบวกทุกจำนวนสามารถเขียนแทนได้ด้วยผลรวมของจำนวนฟีโบนักชีหนึ่งจำนวนหรือมากกว่า โดยมีเงื่อนไขสำคัญคือ ต้องไม่ใช้จำนวนฟีโบนักชีสองจำนวนที่อยู่ติดกันในลำดับ และผลรวมนี้จะมีลักษณะเป็นเอกลักษณ์ (Unique) คือมีเพียงรูปแบบเดียวเท่านั้นสำหรับจำนวนเต็มนั้นๆ

หากให้ $N$ เป็นจำนวนเต็มบวก จะมีจำนวนเต็มบวก $c_i \geq 2$ ซึ่ง $c_{i+1} > c_i + 1$ ที่ทำให้เกิดสมการดังนี้:

สมการการแทนค่าของเซกเคนดอร์ฟ
สูตรทางคณิตศาสตร์สำหรับการแทนค่าจำนวนเต็ม $N$ ด้วยผลรวมของจำนวนฟีโบนักชี

โดยที่ $F_n$ คือจำนวนฟีโบนักชีลำดับที่ $n$ การแทนค่าในลักษณะนี้เรียกว่า การแทนค่าแบบเซกเคนดอร์ฟ (Zeckendorf representation) ซึ่งเป็นพื้นฐานในการสร้างการเข้ารหัสแบบฟีโบนักชี (Fibonacci coding)

ตัวอย่างการคำนวณ

พิจารณาจำนวน 64 การแทนค่าแบบเซกเคนดอร์ฟของ 64 คือผลรวมของจำนวนฟีโบนักชีที่ไม่ต่อเนื่องกัน เช่น $55 + 8 + 1$ (ซึ่งเป็นจำนวนฟีโบนักชีลำดับที่ 10, 6 และ 2 ตามลำดับ) ในขณะที่การเขียน 64 ในรูปแบบอื่น เช่น $34 + 21 + 8 + 1$ ไม่ถือเป็นการแทนค่าแบบเซกเคนดอร์ฟ เนื่องจาก 34 และ 21 เป็นจำนวนฟีโบนักชีที่อยู่ติดกันในลำดับ

วิธีการหาค่าด้วยอัลกอริทึมแบบละโมบ (Greedy Algorithm)

เราสามารถหาการแทนค่าแบบเซกเคนดอร์ฟได้โดยการเลือกจำนวนฟีโบนักชีที่มีค่ามากที่สุดที่ยังน้อยกว่าหรือเท่ากับจำนวนนั้นๆ ในแต่ละขั้นตอน ดังนี้:

  • ตัวอย่างที่ 1: 11 = 8 + 3
  • ตัวอย่างที่ 2: 13 = 13 (เนื่องจาก 13 เป็นจำนวนฟีโบนักชีอยู่แล้ว จึงไม่ต้องบวกเพิ่ม)
  • ตัวอย่างที่ 3: 31 = 21 + 8 + 2

การพิสูจน์ทฤษฎีบท

การพิสูจน์ทฤษฎีบทของเซกเคนดอร์ฟแบ่งออกเป็นสองส่วนหลัก คือ การพิสูจน์ว่าการแทนค่านี้ มีอยู่จริง (Existence) และการพิสูจน์ว่าการแทนค่านี้ มีเพียงหนึ่งเดียว (Uniqueness)

1. การพิสูจน์การมีอยู่ (Existence)

สามารถพิสูจน์ได้โดยใช้การอุปนัยทางคณิตศาสตร์ (Mathematical Induction) โดยเริ่มจากกรณีพื้นฐาน $n=1$ ซึ่งมีการแทนค่าเป็น $F_2$

n=1
กรณีพื้นฐานสำหรับการพิสูจน์
n=1=F2
การแทนค่าจำนวน 1 ด้วยจำนวนฟีโบนักชีลำดับที่ 2

หากสมมติว่าจำนวนเต็มทุกจำนวนที่น้อยกว่า $n$ มีการแทนค่าแบบเซกเคนดอร์ฟ เราสามารถหาจำนวนฟีโบนักชี $F_j$ ที่ใหญ่ที่สุดที่ $F_j < n < F_{j+1}$ แล้วนำ $n - F_j$ มาหาการแทนค่า ซึ่งจะทำให้ได้ผลรวมที่ไม่ใช้จำนวนฟีโบนักชีที่ติดกัน

2. การพิสูจน์ความเป็นเอกลักษณ์ (Uniqueness)

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

เอกลักษณ์ผลรวมฟีโบนักชี
สูตรเอกลักษณ์ที่ใช้ในการพิสูจน์ความเป็นเอกลักษณ์ของการแทนค่า

คำถามที่พบบ่อย

ทฤษฎีบทของเซกเคนดอร์ฟคืออะไร?

คือทฤษฎีที่ระบุว่าจำนวนเต็มบวกทุกจำนวนสามารถแทนด้วยผลรวมของจำนวนฟีโบนักชีที่ไม่ต่อเนื่องกัน (ไม่มีสองจำนวนที่อยู่ติดกันในลำดับฟีโบนักชี) ได้อย่างมีเอกลักษณ์

ทำไมต้องใช้จำนวนฟีโบนักชีที่ไม่ต่อเนื่องกัน?

เพื่อให้การแทนค่ามีเพียงรูปแบบเดียว (Unique) หากอนุญาตให้ใช้จำนวนที่ต่อเนื่องกัน เช่น 3+2 จะสามารถแทนด้วย 5 ซึ่งเป็นจำนวนฟีโบนักชีตัวถัดไป ทำให้การแทนค่าไม่เป็นเอกลักษณ์

จะหาการแทนค่าแบบเซกเคนดอร์ฟได้อย่างไร?

ใช้วิธีการเลือกจำนวนฟีโบนักชีที่มีค่ามากที่สุดที่น้อยกว่าหรือเท่ากับจำนวนนั้นๆ แล้วนำผลต่างที่เหลือมาทำซ้ำจนกว่าผลรวมจะครบจำนวนที่ต้องการ