Hướng dẫn what does recursive mean in python? - đệ quy nghĩa là gì trong python?

Trong hướng dẫn này, bạn sẽ học cách tạo một hàm đệ quy (một hàm tự gọi).

Đệ quy là gì?

Đệ quy là quá trình xác định một cái gì đó theo chính nó.

Một ví dụ thế giới vật lý sẽ là đặt hai gương song song đối diện nhau. Bất kỳ đối tượng ở giữa chúng sẽ được phản ánh đệ quy.


Chức năng đệ quy Python

Trong Python, chúng ta biết rằng một hàm có thể gọi các chức năng khác. Thậm chí có thể cho chức năng gọi chính nó. Các loại cấu trúc này được gọi là các hàm đệ quy.

Hình ảnh sau đây cho thấy hoạt động của một hàm đệ quy gọi là recurse.

Hướng dẫn what does recursive mean in python? - đệ quy nghĩa là gì trong python?
Chức năng đệ quy trong Python

Sau đây là một ví dụ về hàm đệ quy để tìm giai thừa của một số nguyên.

Factorial của một số là sản phẩm của tất cả các số nguyên từ 1 đến số đó. Ví dụ: giai thừa của 6 (ký hiệu là 6!) Là 1*2*3*4*5*6 = 720.

Ví dụ về hàm đệ quy

def factorial(x):
    """This is a recursive function
    to find the factorial of an integer"""

    if x == 1:
        return 1
    else:
        return (x * factorial(x-1))


num = 3
print("The factorial of", num, "is", factorial(num))

Đầu ra

The factorial of 3 is 6

Trong ví dụ trên, factorial() là một hàm đệ quy như nó tự gọi.

Khi chúng ta gọi hàm này với số nguyên dương, nó sẽ tự gọi mình bằng cách giảm số.

Mỗi hàm nhân số số với giai thừa của số bên dưới nó cho đến khi nó bằng một. Cuộc gọi đệ quy này có thể được giải thích trong các bước sau.

factorial(3)          # 1st call with 3
3 * factorial(2)      # 2nd call with 2
3 * 2 * factorial(1)  # 3rd call with 1
3 * 2 * 1             # return from 3rd call as number=1
3 * 2                 # return from 2nd call
6                     # return from 1st call

Chúng ta hãy xem một hình ảnh hiển thị một quá trình từng bước về những gì đang diễn ra:

Hướng dẫn what does recursive mean in python? - đệ quy nghĩa là gì trong python?
Làm việc của một chức năng giai thừa đệ quy

Đệ quy của chúng tôi kết thúc khi số lượng giảm xuống 1. cái này được gọi là điều kiện cơ sở.

Mỗi chức năng đệ quy phải có một điều kiện cơ sở dừng đệ quy hoặc nếu không thì hàm tự gọi chính nó.

Thông dịch viên Python giới hạn độ sâu của đệ quy để giúp tránh các đệ quy vô hạn, dẫn đến tràn chồng.

Theo mặc định, độ sâu tối đa của đệ quy là 1000. Nếu giới hạn được vượt qua, nó sẽ dẫn đến RecursionError. Hãy nhìn vào một điều kiện như vậy.

def recursor():
    recursor()
recursor()

Đầu ra

Traceback (most recent call last):
  File "", line 3, in 
  File "", line 2, in a
  File "", line 2, in a
  File "", line 2, in a
  [Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded

Trong ví dụ trên, factorial() là một hàm đệ quy như nó tự gọi.

  1. Khi chúng ta gọi hàm này với số nguyên dương, nó sẽ tự gọi mình bằng cách giảm số.
  2. Mỗi hàm nhân số số với giai thừa của số bên dưới nó cho đến khi nó bằng một. Cuộc gọi đệ quy này có thể được giải thích trong các bước sau.
  3. Chúng ta hãy xem một hình ảnh hiển thị một quá trình từng bước về những gì đang diễn ra:

Làm việc của một chức năng giai thừa đệ quy

  1. Đệ quy của chúng tôi kết thúc khi số lượng giảm xuống 1. cái này được gọi là điều kiện cơ sở.
  2. Mỗi chức năng đệ quy phải có một điều kiện cơ sở dừng đệ quy hoặc nếu không thì hàm tự gọi chính nó.
  3. Thông dịch viên Python giới hạn độ sâu của đệ quy để giúp tránh các đệ quy vô hạn, dẫn đến tràn chồng.


Đệ quy

Python cũng chấp nhận đệ quy chức năng, có nghĩa là một hàm được xác định có thể tự gọi.

Recursion là một khái niệm toán học và lập trình phổ biến. Nó có nghĩa là một chức năng tự gọi. Điều này có lợi ích của ý nghĩa mà bạn có thể lặp qua dữ liệu để đạt được kết quả.

Nhà phát triển nên rất cẩn thận với đệ quy vì có thể khá dễ dàng để viết một chức năng không bao giờ chấm dứt hoặc sử dụng lượng bộ nhớ hoặc nguồn bộ xử lý dư thừa. Tuy nhiên, khi được viết chính xác đệ quy có thể là một cách tiếp cận rất hiệu quả và về mặt toán học để lập trình.

Trong ví dụ này, tri_Recursion () là một hàm mà chúng tôi đã xác định để tự gọi ("Recurse"). Chúng tôi sử dụng biến K làm dữ liệu, giảm (-1) mỗi khi chúng tôi tái diễn. Đệ quy kết thúc khi điều kiện không lớn hơn 0 (nghĩa là khi nó là 0).tri_recursion() is a function that we have defined to call itself ("recurse"). We use the k variable as the data, which decrements (-1) every time we recurse. The recursion ends when the condition is not greater than 0 (i.e. when it is 0).

Đối với một nhà phát triển mới, có thể mất một thời gian để tìm hiểu chính xác điều này hoạt động như thế nào, cách tốt nhất để tìm hiểu là bằng cách kiểm tra và sửa đổi nó.

Thí dụ

Ví dụ đệ quy

def tri_recursion (k): & nbsp; if (k> 0): & nbsp; & nbsp; & nbsp; result = k+tri_recursion (k-1) & nbsp; & nbsp; & nbsp; in (kết quả) & nbsp; khác: & nbsp; & nbsp; & nbsp; kết quả = 0 & nbsp; Kết quả trả lại
  if(k>0):
    result = k+tri_recursion(k-1)
    print(result)
  else:
    result = 0
  return result

print ("\ n \ nrecursion Kết quả ví dụ") Tri_Recursion (6)
tri_recursion(6)

Hãy tự mình thử »




Ý bạn là gì đệ quy?

Định nghĩa của đệ quy 1: của, liên quan đến hoặc liên quan đến đệ quy một hàm đệ quy trong chương trình máy tính.2: của, liên quan đến, hoặc cấu thành một thủ tục có thể lặp lại vô thời hạn là một quy tắc đệ quy trong một ngữ pháp.of, relating to, or involving recursion a recursive function in a computer program. 2 : of, relating to, or constituting a procedure that can repeat itself indefinitely a recursive rule in a grammar.

Đệ quy với ví dụ là gì?

Đệ quy là quá trình xác định một vấn đề (hoặc giải pháp cho một vấn đề) về mặt (phiên bản đơn giản hơn của) chính nó.Ví dụ: chúng ta có thể xác định hoạt động "Tìm đường về nhà" như: Nếu bạn đang ở nhà, hãy ngừng di chuyển.Thực hiện một bước về nhà.the process of defining a problem (or the solution to a problem) in terms of (a simpler version of) itself. For example, we can define the operation "find your way home" as: If you are at home, stop moving. Take one step toward home.

Những gì được sử dụng để được sử dụng cho?

Recursion là một kỹ thuật được sử dụng để giải quyết các vấn đề máy tính bằng cách tạo một chức năng tự gọi cho đến khi chương trình của bạn đạt được kết quả mong muốn.to solve computer problems by creating a function that calls itself until your program achieves the desired result.

Lý do chính để sử dụng đệ quy trong Python là gì?

Mã đệ quy đơn giản và ngắn hơn mã lặp.Hàm đệ quy sẽ được viết theo các dòng mã ít hơn và sẽ dễ dàng gỡ lỗi hơn.. The recursion function will be written in less lines of code and will be easier for debugging.