Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Trong chương trình này, bạn sẽ học cách in trình tự Fibonacci bằng cách sử dụng vòng lặp.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Python sau:

  • Python nếu ... tuyên bố khác
  • Python trong khi vòng lặp

Trình tự Fibonacci là chuỗi số nguyên là 0, 1, 1, 2, 3, 5, 8 ....

Hai thuật ngữ đầu tiên là 0 và 1. Tất cả các thuật ngữ khác có được bằng cách thêm hai thuật ngữ trước đó. Điều này có nghĩa là để nói thuật ngữ thứ n là tổng của (n-1) và thuật ngữ (n-2).

Mã nguồn

# Program to display the Fibonacci sequence up to n-th term

nterms = int(input("How many terms? "))

# first two terms
n1, n2 = 0, 1
count = 0

# check if the number of terms is valid
if nterms <= 0:
   print("Please enter a positive integer")
# if there is only one term, return n1
elif nterms == 1:
   print("Fibonacci sequence upto",nterms,":")
   print(n1)
# generate fibonacci sequence
else:
   print("Fibonacci sequence:")
   while count < nterms:
       print(n1)
       nth = n1 + n2
       # update values
       n1 = n2
       n2 = nth
       count += 1

Đầu ra

How many terms? 7
Fibonacci sequence:
0
1
1
2
3
5
8

Ở đây, chúng tôi lưu trữ số lượng các điều khoản trong NTERMS. Chúng tôi khởi tạo thuật ngữ đầu tiên thành 0 và thuật ngữ thứ hai thành 1.

Nếu số thuật ngữ là nhiều hơn 2, chúng tôi sử dụng vòng lặp while để tìm thuật ngữ tiếp theo trong chuỗi bằng cách thêm hai thuật ngữ trước đó. Sau đó, chúng tôi trao đổi các biến (cập nhật nó) và tiếp tục với quy trình.

Bạn cũng có thể giải quyết vấn đề này bằng chương trình đệ quy: Python để in trình tự Fibonacci bằng cách sử dụng đệ quy.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Sê -ri Fibonacci trong Python sử dụng chức năng là gì?

Chương trình Python để hiển thị trình tự Fibonacci bằng cách sử dụng Recursion Một chuỗi Fibonacci là một chuỗi các số nguyên mà hai thuật ngữ đầu tiên là 0 và 1 và tất cả các thuật ngữ khác của chuỗi có được bằng cách thêm hai số trước của chúng. Ví dụ: 0, 1, 1, 2, 3, 5, 8, 13, v.v. xem ví dụ này: Quảng cáo.

Công thức để tìm sê -ri Fibonacci là gì?

Công thức fibonacci được đưa ra là, fn = fn-1 + fn-2, trong đó n> 1.

Các câu hỏi về loạt Fibonacci là một số câu hỏi phổ biến nhất trong các cuộc phỏng vấn Python.

Trong bài viết này, tôi sẽ giải thích một cách tiếp cận từng bước về cách in trình tự Fibonacci bằng hai kỹ thuật khác nhau, lặp lại và đệ quy.

Trước khi chúng ta bắt đầu, trước tiên chúng ta hãy hiểu một số thuật ngữ cơ bản.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Trình tự Fibonacci là một chuỗi các số trong đó một số nhất định là kết quả của việc thêm 2 số đi trước nó. Và thêm 2 số trước đó một số lần tạo thành một loạt mà chúng tôi gọi là sê -ri Fibonacci. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34. Within this continuous sequence, every individual number is a Fibonacci number.

Trình tự Fibonacci bắt đầu với hai số, đó là 0 và 1. Sau đó, mỗi số sau được tạo thành từ việc thêm hai số trước đó lại với nhau.

Ví dụ: lấy 0 và 1. Chúng là hai số đầu tiên trong chuỗi. Nếu bạn thêm chúng lại với nhau, bạn sẽ nhận được 1. Vì vậy, chuỗi bắt đầu 0, 1, 1, ..., where n > 1.

Chúng ta có thể sử dụng chuỗi này để tìm bất kỳ số NTH Fibonacci nào.

Trình tự hấp dẫn này được liên kết rộng rãi với nhà toán học Leonardo Pisano, còn được gọi là Fibonacci. Ông đến từ Cộng hòa Pisa, đó là lý do tại sao ông còn được gọi là Leonardo của Pisa.

Leonardo được biết đến như một trong những nhà toán học tài năng nhất thời Trung cổ.

Cách in chuỗi Fibonacci trong Python

Bạn có thể viết một chương trình máy tính để in chuỗi Fibonacci theo 2 cách khác nhau:

  • Lặp đi lặp lại, và
  • Recursively.

Lặp lại có nghĩa là lặp lại công việc cho đến khi điều kiện được chỉ định được đáp ứng. Mặt khác, đệ quy có nghĩa là thực hiện một nhiệm vụ duy nhất và tiến hành tiếp theo để thực hiện nhiệm vụ còn lại.

Đây là một thuật toán lặp để in chuỗi Fibonacci:

  1. Tạo 2 biến và khởi tạo chúng bằng 0 và 1 (thứ nhất = 0, thứ hai = 1)
  2. Tạo một biến khác để theo dõi độ dài của chuỗi Fibonacci được in (chiều dài)
  3. Vòng lặp (chiều dài nhỏ hơn chiều dài chuỗi)
  4. In đầu tiên + giâyfirst + second
  5. Cập nhật biến thứ nhất và thứ hai (thứ nhất sẽ chỉ vào bước thứ hai và lần thứ hai sẽ chỉ vào thứ nhất + thứ hai)first and second variable (first will point to the second, and the second will point to first + second)
  6. Giảm biến chiều dài và lặp lại từ bước 3
  7. Khi vòng lặp chấm dứt, chấm dứt chương trình

Cách thức hoạt động của thuật toán lặp:

Hãy xem xét rằng chúng ta cần in một chuỗi Fibonacci có độ dài 7. Sau đó, dòng chảy của thuật toán sẽ như thế này:

Lặp lạiCác bước giải thíchĐầu ra
Ban đầuThứ nhất = 0, thứ hai = 1[0, 1]
1 In (thứ nhất + thứ hai) = [0 + 1] bây giờ biến first sẽ trỏ đến biến second. Và thứ hai sẽ chỉ vào số Fibonacci tiếp theo mà chúng tôi đã tính toán ở trên.[0, 1, 1]
2 In (thứ nhất + giây) = [1 + 1] bây giờ biến lần đầu tiên sẽ trỏ đến biến thứ hai. Và thứ hai sẽ chỉ vào số Fibonacci tiếp theo mà chúng tôi đã tính toán ở trên.[0, 1, 1, 2]
3 In (thứ nhất + giây) = [1 + 2] bây giờ biến lần đầu tiên sẽ trỏ đến biến thứ hai. Và thứ hai sẽ chỉ vào số Fibonacci tiếp theo mà chúng tôi đã tính toán ở trên.[0, 1, 1, 2, 3]
4 In (thứ nhất + giây) = [2 + 3] bây giờ biến lần đầu tiên sẽ trỏ đến biến thứ hai. Và thứ hai sẽ chỉ vào số Fibonacci tiếp theo mà chúng tôi tính toán ở trên.[0, 1, 1, 2, 3, 5]
5 In (thứ nhất + giây) = [3 + 5] bây giờ biến lần đầu tiên sẽ trỏ đến biến thứ hai. Và thứ hai sẽ chỉ vào số Fibonacci tiếp theo mà chúng tôi đã tính toán ở trên.[0, 1, 1, 2, 3, 5, 8]

Vì vậy, chuỗi Fibonacci cuối cùng cho chiều dài 7 sẽ là & nbsp; [0, 1, 1, 2, 3, 5, 8].[0, 1, 1, 2, 3, 5, 8].

Mã python lặp để in chuỗi Fibonacci:

def PrintFibonacci(length):
    #Initial variable for the base case. 
    first = 0
    second = 1

    #Printing the initial Fibonacci number.
    print(first, second, end=" ")

    #decreasing the length by two because the first 2 Fibonacci numbers 
    #already printed.
    length -= 2
    
    #Loop until the length becomes 0.
    while length > 0:

        #Printing the next Fibonacci number.
        print(first + second, end=" ")

        #Updating the first and second variables for finding the next number. 
        temp = second
        second = first + second
        first = temp

        #Decreasing the length that states the Fibonacci numbers to be 
        #printed more.
        length -= 1

if __name__ == "__main__":
    print("Fibonacci Series - ")
    PrintFibonacci(7)
    pass

Đầu ra cho chiều dài 7:

Fibonacci Series - 
1 1 2 3 5 8

Giải thích về mã:

Trong mã trên, đầu tiên chúng tôi đã xác định một hàm sẽ in chuỗi Fibonacci. Nó chấp nhận một tham số cho độ dài và hàm cần in chuỗi Fibonacci.

Tiếp theo, chúng tôi đã tạo 2 biến chứa 2 giá trị Fibonacci ban đầu, đó là 0 và 1.

Sau đó, chúng tôi đã in 2 giá trị đầu tiên [0, 1] và giảm độ dài xuống 2, vì 2 giá trị đã được in.

Chúng tôi sẽ chạy một vòng lặp trong thời gian dài còn lại và mỗi lần in giá trị Fibonacci tiếp theo bằng cách thêm 2 thuật ngữ trước đó được lưu trữ trong các biến thứ nhất và thứ hai (mà chúng tôi đã tạo ban đầu để theo dõi 2 giá trị trước đó).

Cập nhật các giá trị thứ nhất và thứ hai sẽ trỏ đến 2 giá trị trước đó [thứ nhất = thứ hai và thứ hai = thứ nhất trước + thứ hai].

Vòng lặp sẽ chạy cho đến khi độ dài trở thành 0, trong đó nêu rõ rằng độ dài cần thiết của chuỗi Fibonacci được in.

Sau đó, chúng tôi gọi hàm được xác định để in Fibonacci từ hàm chính bằng cách truyền đối số về độ dài cần thiết sẽ được in. Và bạn có nó rồi đấy!

Có một cách tiếp cận khác để in chuỗi Fibonacci bằng cách sử dụng sự trợ giúp của đệ quy. Vì vậy, hãy để Lừa hiểu cách tiếp cận đó, quá.

Thuật toán đệ quy để in chuỗi Fibonacci:

  • Chấp nhận giá trị của số Fibonacci thứ nhất và thứ hai trước đó là độ dài được in.
  • Kiểm tra xem độ dài là 0 thì chấm dứt cuộc gọi chức năng.
  • In giá trị Fibonacci bằng cách thêm 2 giá trị trước đó nhận được trong tham số của hàm (thứ nhất và thứ hai).
  • Gọi đệ quy hàm cho giá trị cập nhật của thứ nhất và thứ hai, cũng như giá trị giảm của độ dài.

Đối với cuộc gọi hàm đệ quy này, chúng ta cần vượt qua giá trị ban đầu của Fibonacci, đó là (0 và 1), trong các biến thứ nhất và thứ hai.

Để giúp bạn hiểu thuật toán này tốt hơn, hãy để xem việc thực hiện Python của các thuật toán. Sau đó, chúng tôi sẽ xem xét một ví dụ để bạn có thể thấy thuật toán đệ quy này hoạt động như thế nào.

Mã Python đệ quy để in chuỗi Fibonacci:

def PrintFibonacci(first, second, length):

    #Stop the printing and recursive calling if length reaches 
    #the end.
    if(length == 0):
        return

    #Printng the next Fibonacci number.
    print(first + second, end=" ")

    #Recursively calling the function by updating the value and 
    #decrementing the length.
    PrintFibonacci(second, first+second, length-1)

if __name__ == "__main__":
    #Print initial 2 values.
    print(0,1,end=" ")

    #Calling the Function to print the remaining length 
    #fibonacci series
    PrintFibonacci(0,1,7-2)

Output:

For Length 7 
1 1 2 3 5 8

For Length 10
1 1 2 3 5 8 13 21 34

Giải thích về mã:

Đầu tiên, chúng tôi đã tạo một chức năng và thực hiện đệ quy trên nó. Trong hàm đó, chúng tôi đã chấp nhận giá trị của 2 số Fibonacci trước đó để tính số Fibonacci hiện tại. Và chúng tôi có một độ dài theo dõi trường hợp cơ sở.

Đối với trường hợp cơ sở của đệ quy, chúng tôi đang kiểm tra xem độ dài có đạt 0. Nếu có, thì chúng tôi sẽ chấm dứt cuộc gọi đệ quy.

Trong các trường hợp khác, chúng tôi đang in số Fibonacci bằng cách thêm 2 số Fibonacci trước đó.

Và sau đó chúng tôi gọi lại chức năng để in giá trị Fibonacci tiếp theo bằng cách cập nhật 2 giá trị trước đó và giảm độ dài.

Bây giờ, hãy để trực quan hóa các cuộc gọi đệ quy của chức năng này với sự trợ giúp của cây đệ quy. Độ dài chúng tôi muốn in là 7.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Trước khi cuộc gọi đệ quy được thực hiện, hàm chính in 2 giá trị ban đầu, 0 và 1. và sau đó nó chuyển các giá trị này đến hàm đệ quy.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Hàm đệ quy là in giá trị (0 + 1) và các cuộc gọi đệ quy với giá trị được cập nhật tiếp theo.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Sau đó, hàm đệ quy là in giá trị (1 + 1) và các cuộc gọi đệ quy với giá trị cập nhật tiếp theo.(1 + 1) and recursively calls with the next updated value.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Bây giờ hàm đệ quy là in giá trị (1 + 2) và các cuộc gọi đệ quy với giá trị cập nhật tiếp theo.(1 + 2) and recursively calls with the next updated value.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Và sau đó hàm đệ quy là in giá trị (2 + 3) và các cuộc gọi đệ quy với giá trị cập nhật tiếp theo.(2 + 3) and recursively calls with the next updated value.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Bây giờ hàm đệ quy là in giá trị (3 + 5) và các cuộc gọi đệ quy với giá trị cập nhật tiếp theo.(3 + 5) and recursively calls with the next updated value.

Hướng dẫn how do you find the fibonacci series in python? - làm thế nào để bạn tìm thấy chuỗi fibonacci trong python?

Cuối cùng, cuộc gọi cuối cùng được thực hiện. Và độ dài là 0, vì vậy nó sẽ chấm dứt cuộc gọi đệ quy một lần nữa và loạt được in trên bảng điều khiển.

Phân tích độ phức tạp thời gian

Đối với phương pháp lặp

Trong thuật toán lặp, chúng ta đang lặp cho đến khi độ dài trở thành 0. Trong vòng lặp, chúng ta đang thực hiện một thao tác thời gian không đổi của việc in giá trị và cập nhật các biến. & nbsp;

Nếu chúng ta coi chiều dài đó là n, thì độ phức tạp về thời gian sẽ là O (n).O(n).

Đối với cách tiếp cận đệ quy

Trong cách tiếp cận đệ quy, chúng tôi đang gọi các hàm đệ quy lên đến số lần dài nhất định. Chúng tôi cũng đang thực hiện một hoạt động liên tục đơn giản của in ấn.

Vì vậy, trong điều này cũng nếu chúng ta coi độ dài là N số, thì độ phức tạp về thời gian sẽ là O (N). O(n).

Phân tích độ phức tạp không gian

Cho phương pháp lặp

Trong cách tiếp cận lặp, chúng tôi đã không lấy bộ nhớ thêm để chấp nhận hai biến theo dõi hai số Fibonacci trước đó và hằng số với bất kỳ số lượng độ dài nào. Vì vậy, độ phức tạp không gian sẽ không đổi O (1).

Đối với cách tiếp cận đệ quy

Trong cách tiếp cận đệ quy, chúng tôi đang gọi các hàm đệ quy lên đến số lần dài nhất định. Chúng tôi cũng đang thực hiện một hoạt động liên tục đơn giản của in ấn.

Vì vậy, trong điều này cũng nếu chúng ta coi độ dài là N số, thì độ phức tạp về thời gian sẽ là O (N).

Phân tích độ phức tạp không gian

Cho phương pháp lặp

Trong cách tiếp cận lặp, chúng tôi đã không lấy bộ nhớ thêm để chấp nhận hai biến theo dõi hai số Fibonacci trước đó và hằng số với bất kỳ số lượng độ dài nào. Vì vậy, độ phức tạp không gian sẽ không đổi O (1).

Trong cách tiếp cận đệ quy, chúng tôi đang gọi các hàm của số lượng thời gian. Chúng tôi biết rằng đệ quy bên trong sử dụng ngăn xếp cuộc gọi.

Vì vậy, nếu chúng ta xem xét rằng đó là bộ nhớ được thực hiện bởi chương trình, thì cuộc gọi đệ quy được thực hiện số lượng thời gian. Sau đó, độ phức tạp không gian sẽ là O (N).



Sự kết luận

Sê -ri Fibonacci trong Python sử dụng chức năng là gì?

Chương trình Python để hiển thị trình tự Fibonacci bằng cách sử dụng Recursion Một chuỗi Fibonacci là một chuỗi các số nguyên mà hai thuật ngữ đầu tiên là 0 và 1 và tất cả các thuật ngữ khác của chuỗi có được bằng cách thêm hai số trước của chúng.Ví dụ: 0, 1, 1, 2, 3, 5, 8, 13, v.v. xem ví dụ này: Quảng cáo.a sequence of integers which first two terms are 0 and 1 and all other terms of the sequence are obtained by adding their preceding two numbers. For example: 0, 1, 1, 2, 3, 5, 8, 13 and so on... See this example: ADVERTISEMENT.

Công thức để tìm sê -ri Fibonacci là gì?

Công thức fibonacci được đưa ra là, fn = fn-1 + fn-2, trong đó n> 1.Fn = Fn-1 + Fn-2, where n > 1.