Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python ตรวจสอบว่าตัวเลขที่กำหนดเป็นเลขฟีโบนัชชีหรือไม่


ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อความปัญหาที่กำหนดด้านล่าง −

ข้อความของปัญหา

กำหนดตัวเลข 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

ฟังก์ชันและตัวแปรทั้งหมดถูกประกาศในเฟรมส่วนกลาง ตามที่แสดงในภาพด้านล่าง −

โปรแกรม Python ตรวจสอบว่าตัวเลขที่กำหนดเป็นเลขฟีโบนัชชีหรือไม่

สรุป

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