यह प्रश्न पूछने की तरह है कि एक कार और एक डेलोरियन के बीच क्या अंतर है।
रिकर्सन फ़ंक्शन में बेस केस तक पहुंचने तक स्वयं को कॉल किया जाता है।
बैकट्रैकिंग में आप सभी संभावनाओं का पता लगाने के लिए रिकर्सन का उपयोग करते हैं जब तक आपको समस्या का सर्वोत्तम परिणाम न मिल जाए।
थोड़ा समझने के लिए मुश्किल हो सकता है, मैं here से कुछ पाठ देते हैं:
"वैचारिक रूप से, आप एक पेड़ की जड़ में शुरू; पेड़ शायद कुछ अच्छी पत्ते और कुछ बुरी पत्ते है, हालांकि यह हो सकता है हो सकता है कि पत्तियां सभी अच्छी या बुरी हों। आप एक अच्छे पत्ते पर जाना चाहते हैं। प्रत्येक नोड पर, रूट से शुरू होने पर, आप अपने बच्चों में से एक को स्थानांतरित करने के लिए चुनते हैं, और जब तक आप पत्ते तक नहीं पहुंच जाते
मान लीजिए कि आप एक बुरे पत्ते पर आते हैं। आप अपनी सबसे हाल की पसंद को रद्द करके और विकल्पों के उस सेट में अगला विकल्प चुनकर एक अच्छे पत्ते की तलाश जारी रखने के लिए बैकट्रैक कर सकते हैं। यदि आप विकल्पों से बाहर निकलते हैं, choic रद्द करें ई जो आपको यहाँ मिला, और उस नोड पर एक और विकल्प आज़माएं। आप कोई विकल्प नहीं छोड़ा साथ जड़ में अंत है, वहाँ कोई अच्छा पत्ते पाया जा सकता है। "
यह एक उदाहरण की जरूरत है।
गए कोड का टुकड़ा बस प्रत्यावर्तन, आप के रूप में है यदि परिणाम आपके लक्ष्य में फिट नहीं होता है तो कभी वापस न आएं।
मुझे लगता है कि आप बेहतर ढंग से अपने प्रश्न को और अधिक स्पष्ट कर देंगे। आपके द्वारा आपूर्ति किए गए कोड में 'ar' भी परिभाषित नहीं किया गया है। – Ashe
महान सवाल! जैसा कि आप इसे दिखाते हैं, पुनरावृत्ति, सभी संभावित परिणामों की पूर्ण गणना के लिए कार्यान्वयन तंत्र के रूप में कार्य करता है; केवल बेस केस पर छपाई के बजाय, एक परीक्षण जोड़ें, जब परीक्षा उत्तीर्ण की जाती है, और वैकल्पिक जमानत के लिए एक सशर्त प्रिंटिंग जोड़ें, और आपको स्वयं को एक विशिष्ट समस्या के लिए मिनी-प्रोलॉग मिल गया है। –