क्या यह कहना सही है कि हर जगह पुनरावृत्ति का उपयोग एक लूप के लिए किया जा सकता है?
हां, क्योंकि अधिकांश सीपीयू में पुनरावृत्ति को छोरों और एक स्टैक डेटा संरचना के साथ मॉडलिंग की जाती है।
और अगर पुनरावृत्ति आमतौर पर धीमी है, तो इसका उपयोग करने का तकनीकी कारण क्या है?
यह "आमतौर पर धीमा" नहीं है: यह पुनरावृत्ति है जिसे गलत तरीके से लागू किया गया है जो धीमी है। शीर्ष पर, आधुनिक संकलक कुछ पुनरावृत्तियों को बिना पूछे भी छोरों में परिवर्तित करने में अच्छे हैं।
और अगर एक लूप को एक लूप में बदलना हमेशा संभव होता है, तो क्या ऐसा करने के लिए अंगूठे का एक नियम है?
एल्गोरिदम के लिए पुनरावृति कार्यक्रमों को सबसे अच्छी तरह से समझें जब इसे पुनरावर्ती समझाया जाए; एल्गोरिदम के लिए पुनरावर्ती कार्यक्रम सबसे अच्छा पुनरावर्ती समझाएं।
उदाहरण के लिए, बाइनरी पेड़ों की खोज, क्विकॉर्ट चलाने, और कई प्रोग्रामिंग भाषाओं में भावों को अक्सर आवर्ती रूप से समझाया गया है। ये सबसे अच्छी तरह से पुनरावर्ती कोडित हैं। दूसरी ओर, फैक्टर्यूल्स की गणना करना और फाइबोनैचि संख्याओं की गणना करना पुनरावृत्तियों के संदर्भ में व्याख्या करना बहुत आसान है। उनके लिए पुनरावृत्ति का उपयोग करना एक स्लेजहेमर के साथ मक्खियों को स्वाट करने जैसा है: यह एक अच्छा विचार नहीं है, तब भी जब स्लेजहेमर इस पर वास्तव में अच्छा काम करता है + ।
+ मैंने दिज्क्स्ट्रा के "डिसिप्लिन ऑफ़ प्रोग्रामिंग" से स्लेजहेमर सादृश्य उधार लिया।
recursion
बनामiteration
?iteration = for loop
मुझे लगता है।