ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อความปัญหาที่กำหนดด้านล่าง −
ข้อความของปัญหา
กำหนดตัวเลข n ให้ตรวจสอบว่า n เป็นเลขฟีโบนัชชีหรือไม่
เราทุกคนรู้ว่าเลขฟีโบนัชชีลำดับที่ n เป็นผลรวมของเลขฟีโบนัชชีสองตัวก่อนหน้า แต่พวกมันยังมีความสัมพันธ์ที่น่าสนใจอีกอย่างนอกจากความสัมพันธ์เวียนเกิด
ตัวเลขจะเป็นเลขฟีโบนัชชีก็ต่อเมื่อ (5*n² + 4) หรือ (5*n² - 4) เป็นจำนวนกำลังสองสมบูรณ์ (perfect square)
เราจะใช้คุณสมบัตินี้เพื่อตรวจสอบว่าตัวเลขเป็นฟีโบนัชชีหรือไม่
ตอนนี้มาดูการนำไปใช้งานของสคริปต์ Python
ตัวอย่าง
import math
# ถ้า x เป็นกำลังสองสมบูรณ์
def isPerfectSquare(x):
s = int(math.sqrt(x))
return s * s == x
# ถ้า n เป็นเลขฟีโบนัชชี
def isFibonacci(n):
# ถ้าหนึ่งใน 5*n*n + 4 หรือ 5*n*n - 4 หรือทั้งคู่เป็นกำลังสองสมบูรณ์
return isPerfectSquare(5 * n * n + 4) or isPerfectSquare(5 * n * n - 4)
for i in range(1, 11):
if isFibonacci(i) == True:
print(i, "is a Fibonacci Number")
else:
print(i, "is a not Fibonacci Number")
ผลลัพธ์
1 is a Fibonacci Number 2 is a Fibonacci Number 3 is a Fibonacci Number 4 is a not Fibonacci Number 5 is a Fibonacci Number 6 is a not Fibonacci Number 7 is a not Fibonacci Number 8 is a Fibonacci Number 9 is a not Fibonacci Number 10 is a not Fibonacci Number
ฟังก์ชันและตัวแปรทั้งหมดถูกประกาศในเฟรมส่วนกลาง ตามที่แสดงในภาพด้านล่าง −

สรุป
ในบทความนี้ เราได้เรียนรู้วิธีการระบุว่าตัวเลขที่กำหนดเป็นฟีโบนัชชีหรือไม่