Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra số Fibonacci trong Python


Trong bài viết này, chúng ta sẽ học về giải pháp cho bài toán cho trước:

Đề bài

Cho một số n, kiểm tra xem n có phải là số Fibonacci hay không.

Chúng ta đều biết số Fibonacci thứ n là tổng của hai số Fibonacci trước đó. Nhưng chúng cũng cung cấp một mối quan hệ thú vị khác ngoài quan hệ đệ quy.

Một số là Fibonacci nếu và chỉ nếu (5*n^2 + 4) hoặc (5*n^2 - 4) là số chính phương.

Chúng ta sẽ sử dụng tính chất này để kiểm tra xem một số có phải Fibonacci hay không.

Bây giờ hãy xem triển khai script Python:

Ví dụ

import math
# nếu x là số chính phương
def isPerfectSquare(x):
    s = int(math.sqrt(x))
    return s * s == x
# nếu n là số Fibonacci
def isFibonacci(n):
    # nếu một trong 5*n*n + 4 hoặc 5*n*n - 4 hoặc cả hai là số chính phương
    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")

Kết quả

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

Tất cả hàm và biến được khai báo trong khung toàn cục như hình dưới đây:

Kiểm tra số Fibonacci trong Python

Kết luận

Trong bài viết này, chúng ta đã học giải pháp xác định số cho trước có phải Fibonacci hay không.