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

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


สมมติว่าเรามีตัวเลขบอกว่า n เราต้องตรวจสอบว่า n มีอยู่ในลำดับฟีโบนักชีหรือไม่ ดังที่เราทราบในลำดับฟีโบนักชี f(i) =f(i-1) + f(i-2) สำหรับแต่ละ i ตั้งแต่ 2 ถึง n และ f(0) =0, f(1) =1

ดังนั้น หากอินพุตมีค่าเท่ากับ n =13 ผลลัพธ์จะเป็น True เนื่องจากบางพจน์ในลำดับฟีโบนักชีคือ:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ดังนั้น 34 จึงมีอยู่ .

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • phi :=0.5 + 0.5 * สแควร์รูทของ (5.0)
  • a :=phi * n
  • คืนค่า จริง เมื่อ n เท่ากับ 0 หรือ a เป็นจำนวนเต็ม

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

from math import sqrt
def solve(n):
   phi = 0.5 + 0.5 * 5.0**0.5
   a = phi * n
   return n == 0 or abs(round(a) - a) < 1.0 / n

n = 13
print(solve(n))

อินพุต

13

ผลลัพธ์

True