"आगमनात्मक" और "पुनरावर्ती" क्या बहुत समान अर्थ हैं?


11

क्या "आगमनात्मक" और "पुनरावर्ती" का अर्थ बहुत समान है?

उदाहरण के लिए, यदि कोई एल्गोरिथ्म है जो इसके पहले k + घटकों के आधार पर इसके पहले k + 1 घटकों को निर्धारित करके n-dim वेक्टर को निर्धारित करता है, और इसे पहले घटक के साथ आरंभीकृत किया जाता है, तो क्या आप इसे पुनरावर्ती या प्रेरक रूप से कार्य करेंगे? मैं "पुनरावर्ती" का उपयोग कर रहा हूं, लेकिन आज किसी ने इसे "प्रेरक" कहा।


इंडक्शन और रिकर्सन पर यह लेख इसे अच्छी तरह से संक्षेप में प्रस्तुत करता है, लेकिन यह है कि वे बारीकी से संबंधित हैं; गणितीय प्रेरण प्रमाण को पुनरावर्ती एल्गोरिदम के रूप में लिखा जा सकता है।
मर्क

अनिच्छा से आमतौर पर से n + 1 तक पुनरावर्ती का अर्थ है , इसलिए पुनरावर्ती अधिक सामान्य क्रिया विशेषण है। nn+1
युवल फिल्मस

किस तरह की पुनरावर्ती तौर पर, @YuvalFilmus नहीं है?
टिम

@YuvalFilmus: यह बहुत ही सीमित धारणा है।
डेव क्लार्क

मेरे लिए उनका मतलब वही है जो संदर्भ से बाहर हो। एक विशिष्ट संदर्भ में, उनका मतलब अलग-अलग हो सकता है।
गिल्स एसओ- बुराई को रोकें '21

जवाबों:


6

नहीं , लेकिन उन कारणों के लिए नहीं जो अन्य लोगों ने दिए हैं। रिकर्सन और इंडक्शन के बीच अंतर यह नहीं है कि रिकर्सन "टॉप-डाउन" है और इंडक्शन "नीचे-ऊपर" है। इंडक्शन आइसोमोर्फिक है जिसे "प्राइमिटव रिकर्सन" कहा जाता है, लेकिन, सामान्य तौर पर, रिकर्सन प्रेरण की तुलना में कड़ाई से अधिक शक्तिशाली है

टॉप-डाउन और बॉटम अप के बीच का अंतर तुच्छ है - किसी भी "टॉप-डाउन" आदिम पुनरावर्ती कार्यक्रम को यंत्रवत् रूप से "नीचे-ऊपर" में परिवर्तित किया जा सकता है। वास्तव में, प्रेरण द्वारा किसी भी प्रमाण को एक पुनरावर्ती कार्यक्रम में बदल दिया जा सकता है। आगमनात्मक निर्माणों की गणना के ढांचे में, यदि आप यह साबित करना चाहते हैं कि हर प्राकृतिक संख्या में फ्रोपुलस है, तो आप इसे एक फ़ंक्शन के रूप में लिखेंगे जो एक प्रमाण का निर्माण करता है कि एक सबूत बनाने के लिए एक पुनरावर्ती कॉल करके एन फ्रोपुलस होता है कि एन- 1 फ्रोपुलस है।

प्रेरण का मुख्य कारक यह है कि चीजों को छोटी चीजों के रूप में परिभाषित किया जाता है, और वे कई चरणों के बाद "नीचे" करते हैं। प्राकृतिक संख्याएं आगमनात्मक हैं क्योंकि प्रत्येक प्राकृतिक या तो 0 है, या एक छोटे प्राकृतिक का उत्तराधिकारी है। सूचियाँ आगमनात्मक हैं क्योंकि प्रत्येक सूची या तो खाली है, या एक तत्व और एक छोटी सूची में टूट सकती है ("प्रकट")।

कभी-कभी पुनरावर्ती कार्यक्रम छोटी चीज़ों के संदर्भ में नहीं लिखे जाते हैं। उदाहरण के लिए, इस Collatz funtion को लें:

fun collatz(n) 
   if n <= 1
      return 0;
   else if n % 2 == 0
     return 1 + collatz(n / 2)
   else
     return 1 + collatz(3 * n + 1)
end

यह फ़ंक्शन न तो टॉप-डाउन और न ही नीचे-ऊपर जाता है, और इस प्रकार प्राकृतिक संख्या पर आगमनात्मक नहीं है।

हो सकता है कि उस क्रम से व्यवहार करने का आदेश दिया जाए, लेकिन ज्यादातर चीजों के लिए बस कोई रास्ता नहीं है। अनंत धाराओं पर कार्य एक महान उदाहरण हैं। वास्तव में, धाराएं "कोइंडिक्टिव" प्रकार का प्रोटोटाइप उदाहरण हैं।

बॉब हार्पर की "प्रोग्रामिंग लैंग्वेजेज के लिए प्रैक्टिकल फ़ाउंडेशन," ऑनलाइन मुफ़्त उपलब्ध है, जिसमें आगमनात्मक, सहवर्ती और पुनरावर्ती प्रकारों का अच्छा परिचय है।


2

मेरे लिए यह ज्यादातर दृष्टिकोण का सवाल है। यदि मैं छोटी के आधार पर वस्तुओं को परिभाषित करता हूं, तो मैं इसे सम्मिलित रूप से करता हूं, ताकि नीचे-ऊपर हो। अगर मैं इसे छोटे टुकड़ों में तोड़कर एक समस्या को हल करता हूं जो उसी तरीके से हल हो जाते हैं तो मैं इसे पुनरावृत्ति कहता हूं, जो कि टॉप-डाउन है।

(संपादित करें) PS हमारे गणित बहन विभाग, पुनरावर्ती बनाम आगमनात्मक परिभाषा में एक समान प्रश्न देखें । मैं कार्ल Mummert के जवाब से उद्धृत:

मेरा सबसे अच्छा विवरण यह है कि "आगमनात्मक परिभाषा" अधिक सामान्य है जब हम वस्तुओं के एक सेट को "कुछ भी नहीं" से परिभाषित कर रहे हैं, जबकि "पुनरावर्ती परिभाषा" अधिक सामान्य है जब हम वस्तुओं के पहले से मौजूद संग्रह पर एक फ़ंक्शन को परिभाषित कर रहे हैं।

लेकिन अधिक महत्वपूर्ण बात है कि:

यह सोने को खोने के लायक नहीं है


इसलिए "पुनरावृत्ति = विभाजित और जीत", जो पहले ऊपर-नीचे और फिर नीचे-ऊपर?
टिम

1

नहीं, वे समान नहीं हैं। और आप सही हैं (मैं जिस एल्गोरिथ्म का वर्णन कर रहा हूं, उसके बारे में मान रहा हूं): यह पुनरावर्ती है।

कारण दोनों शब्दों की परिभाषा है, जिसे आप एक शब्दकोश या विकिपीडिया में पढ़ सकते हैं।

इंडक्शन ('गणितीय इंडक्शन' मानना) विशेष रूप से यह साबित करने के बारे में है कि तर्क के सभी मामले सही हैं।

पुनरावृत्ति विशेष रूप से एक प्रक्रिया के बारे में है शायद उसी प्रक्रिया के भीतर किसी तरह से दोहराया जा रहा है।

पुन: अन्य लोगों के उत्तर:

अन्य लोगों के उत्तरों को देखने के बाद, मैं समझ सकता हूं कि भ्रम क्यों है: डेटास्ट्रक्चर, फ़ंक्शन और भाषाओं को परिभाषित करते समय कुछ सिद्धांतकार भ्रमित तरीके से 'आगमनात्मक' और 'पुनरावर्ती' का उपयोग करते हैं (इस प्रश्न पर टिप्पणी देखें)। मुझे नहीं लगता कि कोप्पेल का जवाब (वर्तमान उच्चतम वोटों के साथ) वास्तव में उस भ्रम को दर्शाता है। चूंकि हम एक एल्गोरिथ्म के बारे में बात कर रहे हैं, मैं यह नहीं कहूंगा कि 'आगमनात्मक एल्गोरिदम' हैं; मुझे लगता है कि यह एक अनावश्यक वर्गीकरण है।


इंडक्शन केवल प्रमाणों के बारे में नहीं है। आप इसे हर समय पुनरावर्ती संरचनाओं (डेटा संरचनाओं, भाषाओं, आदि) को सक्रिय रूप से परिभाषित करने के लिए भी उपयोग करते हैं
hugomg

@missingno कृपया उस परिभाषा के लिए एक स्रोत प्रदान करें।
टॉम

एक उदाहरण जो मैं सोच सकता था, वह है : "\ mathcal {L} की भाषा, जिसे इसके फॉर्मूला, सुव्यवस्थित सूत्र या wff के सेट के रूप में भी जाना जाता है, को निम्नलिखित नियमों द्वारा आनुपातिक रूप से परिभाषित किया गया है:"
hugomg

@missingno, जो इस विकिपीडिया पृष्ठ की ओर ले जाता है, जहाँ मुझे लगता है कि 'प्रेरक' शब्द का एक अतिरेक और भ्रामक उपयोग है, अनिवार्य रूप से 'पुनरावर्ती' के रूप में उपयोग किया जा रहा है
टॉम

कृपया मुझे और भी अधिक उदाहरणों के लिए मत देखो। भले ही आप इससे सहमत न हों, लेकिन यह निश्चित रूप से एक बहुत ही सामान्य मुहावरा है और आप इसे कई पुस्तकों में भी पा सकते हैं, यदि आप इसे खोजते हैं। और इसकी तरह किसी ने मेरी बात को साबित करने के उद्देश्य से विकिपीडिया के लेख को संपादित नहीं किया ...
hugomg
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.