রিকার্শন
রিকার্শন সমস্যা ভাগ করে সমাধান করতে সহায়ক। প্রতিটি রিকার্সিভ কল নিজে আরও রিকার্সিভ কল তৈরি করে। একটি রিকার্সিভ ফাংশনের কেন্দ্রে দুটি টাইপের কেস থাকে: বেস কেস, যেটি রিকার্শনকে কখন বন্ধ হবে বলে, এবং রিকার্সিভ কেস যেটি নিজের ফাংশনটিকে কল করে। একটি সাধারণ সমস্যা যা স্বাভাবিকভাবে রিকার্সিভ সমাধান ব্যবহার করে সেটি হলো ফ্যাক্টোরিয়াল ক্যালকুলেশন। রিকার্সিভ ফ্যাক্টোরিয়াল অ্যালগরিদমের দুটি কেস থাকে: বেস কেস যখন n = 0, এবং রিকার্সিভ কেস যখন n > 0।
ব্যাকট্র্যাকিং
ব্যাকট্র্যাকিং হলো একটি জেনারেল অ্যালগরিদম যা কিছু কম্পিউটেশনাল সমস্যার সমাধান খুঁজে বের করতে হেল্প করে, যা Incremেন্টালি সমাধানের চয়েস বিল্ড করে, এবং অসম্ভব সমাধানের দিকে যাওয়া ট্র্যাকগুলো রিজেক্ট করে। ব্যাকট্র্যাকিং আমাদের পূর্বের চয়েসগুলো анডু করতে দেয় যদি সেগুলো ভুল প্রমাণিত হয়।
ফ্যাক্টোরিয়ালের একটি টিপিক্যাল ইমপ্লিমেন্টেশন নিচের মতো -
উদাহরণ
def factorial(n):
# test for a base case
if n == 0:
return 1
# make a calculation and a recursive call
f = n * factorial(n - 1)
print(f)
return f
factorial(4)
এই কোডটি 1, 2, 4, 24 প্রিন্ট করে। ফ্যাক্টোরিয়াল ৪ ক্যালকুলেট করতে চারটি রিকার্সিভ কল প্লাস ইনিশিয়াল পেরেন্ট কল লাগে।