2011-10-24 13 views
5

कुछ समस्याएं जिन्हें रिकर्सन की आवश्यकता होती है, ने हमेशा मुझे एक फिक्स में डाल दिया है। मैं हमेशा एक पुनरावर्ती एल्गोरिदम के साथ आने में सक्षम नहीं हूं, लेकिन मुझे पता है कि समस्या का एक पुनरावर्ती समाधान है।व्यापक रिकर्सन ट्यूटोरियल

मुझे रिकर्सिव दृष्टिकोण का उपयोग करके कार्यान्वित करने के लिए फैक्टोरियल और फाइबोनैकी जैसी समस्याएं मिलती हैं। लेकिन जब मुझे http://en.wikipedia.org/wiki/Partition_%28number_theory%29 के विभाजन को उत्पन्न करने जैसी अधिक जटिल समस्याओं का सामना करना पड़ता है, तो मुझे पता है कि एक संभावित रिकर्सिव दृष्टिकोण है लेकिन मैं वहां पर अटक गया हूं। मैं एक रिकर्सिव एल्गोरिदम तैयार नहीं कर सकता। मान लीजिए कि मैं स्ट्रिंग के सभी संयोजनों को प्रिंट करना चाहता हूं या अगर मैं रिकर्सन का उपयोग करके सिक्का चेंज समस्या को ब्रूटफोर्स करना चाहता हूं, तो मैं एक रिकर्सिव दृष्टिकोण नहीं बना सकता।

क्या एक पुनरावर्ती दृष्टिकोण के साथ आने के लिए सोचने का कोई विशेष तरीका है? क्या वहां कोई व्यापक रिकर्सिव एल्गोरिदम ट्यूटोरियल है जो मुझे और अधिक उन्नत समस्याओं को हल करने में मदद कर सकता है?

उत्तर

3

Structure and Interpretation of Computer Programs book देखें, जो अत्यधिक स्टैक ओवरफ़्लो पर अत्यधिक अनुशंसा की जाती है और ऑनलाइन उपलब्ध है। यह प्रोग्रामिंग के बारे में मौलिक अवधारणाओं को सिखाने के लिए योजना प्रोग्रामिंग भाषा का उपयोग करता है। चूंकि योजना एक कार्यात्मक प्रोग्रामिंग भाषा है, रिकर्सन का व्यापक रूप से हर जगह उपयोग किया जाता है - न केवल आप जहां सी या पीएचपी जैसे अनिवार्य प्रोग्रामिंग भाषाओं में इसका उपयोग करेंगे, बल्कि यह भी जहां आप आमतौर पर लूपिंग निर्माण का उपयोग करेंगे। पुस्तक में उदाहरण और समस्याएं अपने प्राकृतिक आवास में पुनरावृत्ति मौजूद हैं, यदि आप करेंगे, और ठोस गठित परिदृश्यों के माध्यम से नहीं।

+0

धन्यवाद। मैं निश्चित रूप से पुस्तक के माध्यम से जाऊंगा :-) – PuppyHeadedNinja

+0

असल में एमआईटी वेबसाइट पर ऑनलाइन वीडियो पाठों की पूरी श्रृंखला भी है: http://ocw.mit.edu/courses/electrical-engineering-and-computer-cience/6 -001-संरचना-और-व्याख्या-कंप्यूटर-कार्यक्रम-वसंत-2005/वीडियो-व्याख्यान/वे काफी रोचक हैं :) – sergico

संबंधित मुद्दे