توابع بازگشتی در پایتون :
توابع بازگشتی در زبان برنامهنویسی پایتون، تابعهایی هستند که در داخل خود به خود فراخوانی میشوند. این توابع میتوانند در حل مسائل با الگوریتمهای بازگشتی مفید باشند و به برنامهنویسان کمک میکنند تا کدهای خود را سادهتر و قابل فهمتر نگه دارند.
توابع بازگشتی در پایتون با استفاده از دستور “return” مقدار مورد نظر خود را به عنوان خروجی برمیگردانند. این خروجی میتواند به عنوان ورودی برای فراخوانی بعدی تابع استفاده شود. در نتیجه، توابع بازگشتی معمولاً دارای حالت پایانی هستند که با آن مقدار مورد نظر برگشت داده میشود.
برای مثال، فرض کنید میخواهیم تابع محاسبهٔ فاکتوریل را پیادهسازی کنیم. فاکتوریل عدد n را میتوان به صورت بازگشتی تعریف کرد: فاکتوریل n برابر است با n ضرب شده در فاکتوریل n-۱. به این ترتیب، میتوان تابع فاکتوریل را به صورت زیر پیادهسازی کرد:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
در این تابع، ابتدا بررسی میشود که آیا عدد ورودی برابر با صفر است یا نه. اگر برابر با صفر باشد، تابع ۱ را برمیگرداند و فراخوانی به پایان میرسد. در غیر این صورت، تابع n ضرب شده در فاکتوریل n-۱ را برمیگرداند و به خودش با n-۱ فراخوانی میشود. این فرآیند تا زمانی ادامه مییابد که عدد ورودی برابر با صفر شود و پس از آن تمام فراخوانیها به صورت بازگشتی حل میشود.
برای استفاده از تابع فاکتوریل، کافی است آن را با عدد مورد نظر صدا بزنیم. به عنوان مثال:
result = factorial(5)
print(result)
این کد، فاکتوریل عدد ۵ را محاسبه کرده و نتیجه را به عنوان خروجی چاپ میکند. در این مثال، فاکتوریل ۵ برابر است با ۵ ضرب شده در فاکتوریل ۴، که باز هم برابر است با ۴ ضرب شده در فاکتوریل ۳، و به همین ترتیب تا این که به فاکتوریل ۱ و ۰ برسیم. حاصل این عملیات برابر است با ۱ و نتیجهٔ نهایی به عنوان خروجی برگشت داده میشود.
توابع بازگشتی در پایتون میتوانند در حل مسائلی مانند محاسبهٔ توان، جستجوی دودویی، مرتبسازی بازگشتی و… کاربرد داشته باشند. با استفاده از این توابع، برنامهنویسان میتوانند کدهایی ساده، خوانا و قابل فهم برای حل مسائل پیچیدهتر بنویسند.