Có hàm Fibonacci trong Python không?

Dãy Fibonacci là một dãy các số nguyên mà hai số hạng đầu tiên là 0 và 1 và tất cả các số hạng khác của dãy có được bằng cách cộng hai số liền trước của chúng

Ví dụ. 0, 1, 1, 2, 3, 5, 8, 13, v.v.

Xem ví dụ này

đầu ra

Trong Toán học, Dãy Fibonacci là một dãy số sao cho mỗi số trong dãy là tổng của các số liền trước. Chuỗi bắt đầu bằng 0 và 1. Blog này sẽ hướng dẫn chúng ta cách tạo Chuỗi Fibonacci trong Python bằng vòng lặp, đệ quy và lập trình động. Hãy xem khóa học Python dành cho người mới bắt đầu này mà chúng tôi đã chuẩn bị để bạn nâng cao kỹ năng của mình


  1. a.
    b.
    c.

Leonardo Pisano Bogollo là một nhà toán học người Ý đến từ Cộng hòa Pisa và được coi là nhà toán học phương Tây tài năng nhất thời Trung Cổ. Ông sống giữa 1170 và 1250 ở Ý. “Fibonacci” là biệt danh của ông, có nghĩa là “Con trai của Bonacci. ” Fibonacci không phải là người đầu tiên biết về dãy số, và nó đã được biết đến ở Ấn Độ hàng trăm năm trước

Dãy Fibonacci là gì?

Chuỗi Fibonacci là một mẫu số trong đó mỗi số là kết quả của việc cộng hai số liên tiếp cuối cùng. 2 số đầu tiên bắt đầu bằng 0 và 1, và số thứ ba trong dãy là 0+1=1. Số thứ 4 là phép cộng của số thứ 2 và thứ 3, i. e. , 1+1=2, v.v.
Dãy Fibonacci là dãy số
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …

Tìm hiểu thêm về Python

Nghề nghiệp Python Python MySQL

Logic của dãy Fibonacci

Số sau là tổng của hai số trước nó
Phần tử thứ 3 là [1+0] = 1
Phần tử thứ 4 là [1+1] = 2
Phần tử thứ 5 là [2+1] = 3

Công thức chuỗi Fibonacci

Do đó, công thức tính chuỗi như sau
xn = xn-1 + xn-2 ;
xn là số hạng “n”
xn-1 là số hạng trước đó [n-1]
xn-2 là thuật ngữ trước đó

Xoắn Ốc Fibonacci

Một tính chất thú vị về những con số này là chúng ta có một hình xoắn ốc khi chúng ta tạo các hình vuông với các chiều rộng này. Xoắn ốc Fibonacci là một mô hình gồm các phần tư hình tròn được kết nối bên trong một khối hình vuông với các số Fibonacci được viết trong mỗi khối. Số trong ô vuông khổng lồ là tổng của 2 ô vuông nhỏ hơn sau. Đây là một sự sắp xếp hoàn hảo trong đó mỗi khối được biểu thị bằng một số cao hơn hai khối trước đó. Ý tưởng chính bắt nguồn từ mẫu Logarit, trông cũng tương tự. Những con số này cũng liên quan đến tỷ lệ vàng

Dãy Fibonacci

Tìm hiểu cách tìm xem Chuỗi có phải là Palindrome trong Python không

Thuật toán chuỗi Fibonacci

Phương pháp lặp đi lặp lại

  • Khởi tạo các biến a,b thành 1
  • Khởi tạo vòng lặp for trong phạm vi[1,n] # n độc quyền
  • Tính số tiếp theo trong chuỗi;
  • Lưu trữ giá trị trước đó trong b
  • Lưu trữ tổng số trong một

Cách tiếp cận đệ quy

  • Nếu n bằng 1 hoặc 0;
  • Khác trả về fib[n-1] + fib[n-2]

Phương pháp lập trình động

  • Khởi tạo một mảng arr có kích thước n thành 0
  • Nếu n bằng 0 hoặc 1;
  • Khởi tạo mảng[0] và mảng[1] thành 1
  • Chạy vòng lặp trong phạm vi [2,num]
  • Tính giá trị arr[I]=arr[I-1] +arr[I-2]
  • Mảng có trình tự được tính đến n

Do đó, giải pháp sẽ là tính toán giá trị một lần và lưu trữ nó trong một mảng từ đó nó có thể được truy cập vào lần tiếp theo khi được yêu cầu. Do đó, chúng tôi sử dụng lập trình động trong những trường hợp như vậy. Điều kiện để thực hiện quy hoạch động là
1. các vấn đề phụ chồng chéo
2. cấu trúc con tối ưu

Phương pháp lặp đi lặp lại

def fib_iter[n]:
    a=1
    b=1
    if n==1:
        print['0']
    elif n==2:
        print['0','1']
    else:
        print["Iterative Approach: ", end=' ']
        print['0',a,b,end=' ']
        for i in range[n-3]:
            total = a + b
            b=a
            a= total
            print[total,end=' ']
        print[]
        return b
        
fib_iter[5]

KIỂM TRA MÃ

đầu ra. Phương pháp lặp đi lặp lại. 0 1 1 2 3

Cách tiếp cận đệ quy

def fib_rec[n]:
    if n == 1:
        return [0]
    elif n == 2:
        return [0,1]
    else:
        x = fib_rec[n-1]
        # the new element the sum of the last two elements
        x.append[sum[x[:-3:-1]]]
        return x
x=fib_rec[5]
print[x]

KIỂM TRA MÃ

Đầu ra – 0, 1, 1, 2, 3

Phương pháp lập trình động

There is a slight modification to the iterative approach. We use an additional array.

def fib_dp[num]:
    arr = [0,1]
    print["Dynamic Programming Approach: ",end= ' ']
    if num==1:
        print['0']
    elif num==2:
        print['[0,','1]']
    else:
        while[len[arr]

Chủ Đề