Module: सबरूटीन्स। प्रत्यावर्तन


Problem

11/12

लाइनों पर पुनरावृति

Theory Click to read/hide

कार्य
जनजाति की भाषा "तुम्बा-युम्बा" की वर्णमाला में; चार अक्षर: "के", "एल", "एम" और "एन". आपको n अक्षरों वाले सभी शब्द प्रदर्शित करने होंगे जो इस वर्णमाला के अक्षरों से बनाए जा सकते हैं।

समस्या एक सामान्य क्रूर-बल समस्या है जिसे एक छोटी समस्या में कम किया जा सकता है।
हम शब्द के लिए अक्षरों को क्रमिक रूप से प्रतिस्थापित करेंगे।
किसी शब्द की पहली स्थिति वर्णमाला के 4 अक्षरों (K. L, M, N) में से एक हो सकती है।
पहले K अक्षर को रखते हैं। फिर, पहले अक्षर K वाले सभी प्रकार प्राप्त करने के लिए, आपको शेष n - 1 स्थितियों में अक्षरों के सभी संभावित संयोजनों की गणना करने की आवश्यकता है। (तस्वीर देखें).
इस प्रकार, लंबाई n - 1 की चार समस्याओं को हल करने के लिए समस्या कम हो जाती है।
 
n वर्णों पर बार-बार पुनरावृति करें
डब्ल्यू[0]='के'; // अंतिम L-1 वर्णों पर पुनरावृति करें डब्ल्यू[0]='एल'; // अंतिम L-1 वर्णों पर पुनरावृति करें डब्ल्यू[0]='एम'; // अंतिम L-1 वर्णों पर पुनरावृति करें डब्ल्यू[0]='एन'; // अंतिम L-1 वर्णों पर पुनरावृति करें w - एक कैरेक्टर स्ट्रिंग जो वर्किंग वर्ड को स्टोर करता है।
इस प्रकार, हमें रिकर्सन मिला। हम पुनरावर्ती प्रक्रिया के रूप में समस्या के समाधान की व्यवस्था कर सकते हैं। 
यह निर्धारित करना बाकी है कि पुनरावृत्ति कब समाप्त होगी? जब सभी वर्ण सेट हो जाते हैं, अर्थात सेट वर्णों की संख्या n होती है। इस मामले में, आपको परिणामी शब्द को स्क्रीन पर प्रदर्शित करने और प्रक्रिया से बाहर निकलने की आवश्यकता है।

C# प्रोग्राम इस तरह दिखेगा।
<दिव> // w - बदलने योग्य पैरामीटर (स्ट्रिंग-परिणाम) // TumbaWords प्रक्रिया वर्णमाला को वर्ण स्ट्रिंग के रूप में पास करती है, // शब्द शब्द और वर्णों की संख्या पहले से ही निर्धारित है (शुरुआत में - 0) स्थैतिक शून्य TumbaWords (स्ट्रिंग ए, रेफ स्ट्रिंग डब्ल्यू, इंट एन) { if (N == w.Length) // w.Length - स्ट्रिंग में वर्णों की संख्या {   // यदि सभी वर्णों को पहले ही शब्द पर सेट कर दिया गया है, तो       // फिर एक स्ट्रिंग को आउटपुट करना और प्रक्रिया को समाप्त करना आवश्यक है कंसोल। राइटलाइन (डब्ल्यू); वापस करना; } for ( int i = 0; i < w.Length; i++ ) // यदि ऊपर दी गई स्थिति झूठी है (अर्थात, सभी वर्णों में अंतर नहीं है, {     // यदि उपरोक्त स्थिति गलत है (अर्थात, सभी वर्णों के बीच स्थान नहीं है,     // फिर लूप में हम वर्णमाला के सभी वर्णों से गुजरते हैं और   // वैकल्पिक रूप से चरित्र को पहले खाली स्थान पर रखें डब्ल्यू + = ए [i]; तुम्बावर्ड्स (ए, रेफ डब्ल्यू, एन + 1); w = w.Remove (w.Length - 1); // और फिर अंतिम जोड़े गए वर्ण को हटा दें,   // एक ही उपसर्ग के साथ एक नया शब्द बनाने के लिए } } स्थिर शून्य मुख्य () { int n = Convert.ToInt32(Console.ReadLine()); स्ट्रिंग शब्द = ""; तुम्बावर्ड्स("केएलएमएन", संदर्भ शब्द, 0); }
ध्यान दें कि w एक परिवर्तनशील पैरामीटर (परिणाम स्ट्रिंग) है!

Problem

जनजाति की भाषा की वर्णमाला में «तुम्बा-युम्बा» चार अक्षर: "के", "एल", "एम" और "एन". आपको n अक्षरों वाले सभी शब्द प्रदर्शित करने होंगे जो इस वर्णमाला के अक्षरों से बनाए जा सकते हैं।
(c) के.यू.यू. पॉलाकोव