इस तरह के रिकर्सन का आवेदन

मैं समझ नहीं पा रहा हूं कि हम इस संरचना का उपयोग किसी समस्या में रिकर्सन के लिए कहां करते हैं और इसे क्या कहा जाता है

int func001(int x){

    if(x>=1) func003(x-1);

}
int func003(int y){

    if(y>=2) func001(y-1);

}
0
यह कोड एल्गोरिदम का प्रतिनिधित्व नहीं करता है, इसका मतलब यह है कि, एक फ़ंक्शन ए एक अन्य फ़ंक्शन बी को कॉल करता है जो ए को कॉल करता है और इसी तरह ... हम इस प्रकार के रिकर्सन का उपयोग कहां करते हैं, मेरा मतलब है कि कौन सी समस्याएं \ algorithms।
जोड़ा लेखक Namit Sinha, स्रोत
आपने यह कोड कहां देखा? अपने मूल स्रोत में यह किस प्रकार की समस्या को हल कर रहा है? जैसा कि है, यह कोड वास्तव में बहुत कुछ नहीं करता है। यह मूल मूल्य के आधार पर x / y के छोटे और छोटे मानों के साथ इन दोनों कार्यों को आगे और आगे कॉल करता रहता है, जब तक कि यह मूल मान के आधार पर 1 या 0 तक न हो जाए प्रथम।
जोड़ा लेखक jonhopkins, स्रोत
और न तो फ़ंक्शन वास्तव में बेस केस या रिकर्सिव केस के लिए कुछ भी देता है, जैसा कि, वे काफी बेकार हैं ...
जोड़ा लेखक twalberg, स्रोत
इसे पारस्परिक रिकर्सन कहा जाता है।
जोड़ा लेखक kqr, स्रोत

1 उत्तर

इस तरह के रिकर्सन को पारस्परिक रिकर्सन कहा जाता है। आपका कोड उदाहरण अच्छी तरह परिभाषित नहीं है, इसलिए यह बताना संभव नहीं है कि यहां क्या है।

फिर भी, पारस्परिक पुनरावर्ती कार्यों का सबसे आम उपयोग एक सीमित राज्य automaton को एन्कोड करना है: प्रत्येक राज्य को फ़ंक्शन द्वारा दर्शाया जाता है और संक्रमण अन्य कार्यों को कॉल द्वारा दर्शाया जाता है। उदाहरण के लिए यह lex और इसी तरह के कार्यक्रमों द्वारा उत्पन्न शब्दावली विश्लेषकों में मामला है, लेकिन अक्सर हाथ से लिखे गए व्याख्यात्मक विश्लेषकों में भी मामला।

0
जोड़ा