पुनरावृत्ति
रिकर्सन समस्याओं को विभाजित करने और हल करने में उपयोगी है। प्रत्येक पुनरावर्ती कॉल स्वयं अन्य पुनरावर्ती कॉलों को बंद कर देती है। एक पुनरावर्ती फ़ंक्शन के केंद्र में दो प्रकार के मामले होते हैं:आधार मामले, जो पुनरावृत्ति को बताते हैं कि कब समाप्त करना है, और पुनरावर्ती मामले जो उस फ़ंक्शन को कॉल करते हैं जिसमें वे हैं। एक साधारण समस्या जो स्वाभाविक रूप से पुनरावर्ती समाधानों का उपयोग करती है वह है फैक्टोरियल की गणना करना। रिकर्सिव फैक्टोरियल एल्गोरिदम में दो मामले होते हैं:बेस केस जब n =0, और रिकर्सिव केस जब n>0।
बैकट्रैकिंग
बैकट्रैकिंग कुछ कम्प्यूटेशनल समस्या के समाधान खोजने के लिए एक सामान्य एल्गोरिथम है, जो समाधानों के लिए क्रमिक रूप से विकल्प बनाता है, और ट्रैक के निरंतर प्रसंस्करण को अस्वीकार करता है जिससे असंभव समाधान हो सकते हैं। बैकट्रैकिंग हमें पिछले विकल्पों को पूर्ववत करने की अनुमति देता है यदि वे गलतियाँ साबित होते हैं।
फैक्टोरियल का एक विशिष्ट कार्यान्वयन निम्नलिखित है -
उदाहरण
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 को प्रिंट करता है। फैक्टोरियल 4 की गणना करने के लिए चार रिकर्सिव कॉल और प्रारंभिक पैरेंट कॉल की आवश्यकता होती है।