রিকারসিভ (Recursive) ফাংশন হল এমন একটি ফাংশন যা নিজে কে কল করে। এটি ফাংশনকে বারবার повтор করতে দেয়, প্রতিটি ইটারেশনের শেষে ফলাফল আউটপুট করে। রিকারসন অনন্তের সাথে সম্পর্কিত।
নিচে একটি ইন্টিজারের ফ্যাক্টোরিয়াল বের করার রিকারসিভ ফাংশন উদাহরণ দেওয়া হলো।
ফ্যাক্টোরিয়াল (Factorial): একটি সংখ্যার ফ্যাক্টোরিয়াল হল ১ থেকে সে সংখ্যা পর্যন্ত সব ইন্টিজারের গুণফল।
উদাহরণস্বরূপ, ৯-এর ফ্যাক্টোরিয়াল (৯!) = ১×২×৩×৪×৫×৬×৭×৮×৯ = ৩৬২৮৮০।
উদাহরণ ১
def factorial(i):
if i == 1:
return 1
else:
return (i * factorial(i-1))
number = 9
print("The factorial of", number, "is", factorial(number))
আউটপুট
The factorial of 9 is 362880
উপরের প্রোগ্রামে factorial() একটি রিকারসিভ ফাংশন কারণ এটি নিজে কে কল করে। প্রতিটি কল সংখ্যাটিকে এক কম後の ফ্যাক্টোরিয়াল দিয়ে গুণ করে, যতক্ষণ না সংখ্যা ১ হয়।
উদাহরণস্বরূপ, দুটি সমান্তরাল আয়না একদूसরোর সম্মুখীন রাখলে। তাদের মাঝপথে যেকোনো অবজেক্ট রিকারসিভভাবে প্রতিফলিত হবে।
উদাহরণ ২
def Function(x):
if (x < 1):
return
else:
print(x, end=" ")
Function(x-1)
print(x, end=" ")
return
x = 5
Function(x)
আউটপুট
5 4 3 2 1 1 2 3 4 5