بکندباز

تابع بازگشتی چیست؟

تابع بازگشتی در برنامه نویسی، نوعی روش حل مسئله است که در آن، یک تابع را درون خودش دوباره فراخوانی می کنیم تا زمانی که به یک شرط خاص برسد.

مثلاً برای محاسبه فاکتوریل یک عدد به روش تابع بازگشتی به شکل زیر عمل می کنیم:

همانطور که می دانید فاکتوریل یک عدد، یعنی ضرب آن عدد در اعداد کوچکتر از خود (تا عدد 1). یعنی فاکتوریل 6 برابر است با:

6! = 1×2×3×4×5×6

در نتیجه فاکتوریل هر عدد برابر است با حاصل ضرب آن عدد در فاکتوریل عدد قبلی:

6! = 5! × 6

5! = 4! × 5

4! = 3! × 4

3! = 2! × 3

2! = 1! × 2

1! = 1

این یعنی همان تابع بازگشتی. یعنی در هنگام محاسبه فاکتوریل یک عدد، فاکتوریل یک عدد دیگر را محاسبه کرده ایم:

کد این مسئله  (با پایتون):

def factorial(n):
   if n == 1:
      return 1
   return factorial(n-1) * n

print(factorial(6))

توجه داشته باشید که حتماً باید شرطی در کد داشته باشیم که در آنجا فراخوانی تابع را متوقف کنیم. در غیر اینصورت تابع تا ابد ادامه می یابد.

دیدگاه‌ها

*
*

پشتیبانی واتس اپ