N पूर्णांकों की एक सरणी arr[N] दी गई है, कार्य arr[N] का औसत निकालना है। परिणाम प्राप्त करने के लिए हम या तो पुनरावृत्त दृष्टिकोण या पुनरावर्ती दृष्टिकोण का उपयोग कर सकते हैं। हम दिए गए समाधान में दोनों दिखाएंगे।
सरणी का औसत सरणी के सभी तत्वों का योग तत्वों की संख्या से विभाजित होगा।
पुनरावृत्त विधि
पुनरावृत्त दृष्टिकोण में, हम for-loop, while-loop या do-while लूप जैसे लूप का उपयोग करते हैं जो कथनों को तब तक निष्पादित करता है जब तक शर्त सत्य रहती है जिसका अर्थ है 1।
आइए एक उदाहरण लें और फिर चर्चा करें कि इसे पुनरावृत्त दृष्टिकोण का उपयोग करके कैसे प्राप्त किया जा सकता है।
इनपुट
arr[] = {1, 2, 4, 5, 8}
आउटपुट
4
व्याख्या
सभी तत्वों का योग = 1+2+4+5+8 = 20, तत्वों की कुल संख्या = 5, औसत = 20/5 = 4
इनपुट
arr[] = {10, 20, 30, 40}
आउटपुट
25
समस्या को हल करने के लिए उपयोग किया गया दृष्टिकोण (पुनरावृत्त)
- लूप का उपयोग करके सरणी के प्रत्येक तत्व को पुनरावृत्त करें।
- सरणी के अंत तक पहुंचने तक प्रत्येक तत्व को जोड़ें।
- कुल तत्वों की संख्या से योग को विभाजित करें और औसत लौटाएं।
एल्गोरिदम
शुरुआत
चरण 1 → पुनरावृत्त विधि का उपयोग करके औसत की गणना के लिए फ़ंक्शन घोषित करें
double avg(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++)
sum += arr[i];
return sum / size;
}
चरण 2 → main() में
int arr[] = {2, 3, 1, 6, 8, 10};
int size = sizeof(arr) / sizeof(arr[0]);
avg(arr, size);
रुकें
उदाहरण
#include <iostream>
using namespace std;
double avg(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++)
sum += arr[i];
return sum / size;
}
int main() {
int arr[] = {2, 3, 1, 6, 8, 10};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "पुनरावृत्त विधि का उपयोग करके सरणी का औसत: " << avg(arr, size) << endl;
return 0;
}
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्नलिखित आउटपुट उत्पन्न करेगा:
पुनरावृत्त विधि का उपयोग करके सरणी का औसत: 5
पुनरावर्ती विधि
तो पुनरावर्ती दृष्टिकोण क्या है? पुनरावर्ती दृष्टिकोण में हम वांछित परिणाम प्राप्त होने तक किसी फ़ंक्शन को बार-बार पुनरावर्ती रूप से कॉल करते हैं। पुनरावर्ती दृष्टिकोण में फ़ंक्शन द्वारा लौटाए गए मान स्टैक मेमोरी में संग्रहीत होते हैं।
आइए एक उदाहरण लें और फिर चर्चा करें कि इसे पुनरावृत्त दृष्टिकोण का उपयोग करके कैसे प्राप्त किया जा सकता है।
इनपुट
arr[] = {2, 4, 6, 8}
आउटपुट
5
व्याख्या
सभी तत्वों का योग = 2+4+6+8 = 20, तत्वों की कुल संख्या = 4, औसत = 20/4 = 5
इनपुट
arr[] = {12, 23, 45, 15}
आउटपुट
19
समस्या को हल करने के लिए उपयोग किया गया दृष्टिकोण (पुनरावर्ती)
- हम फ़ंक्शन को बार-बार तब तक कॉल करेंगे जब तक हम सरणी के अंत तक नहीं पहुंच जाते।
- हम सरणी के प्रत्येक तत्व को जोड़ेंगे और जब हम सरणी के अंत तक पहुंच जाएंगे, तो हम सरणी का औसत लौटाएंगे।
एल्गोरिदम
शुरुआत
चरण 1 → पुनरावर्ती विधि का उपयोग करके औसत की गणना के लिए फ़ंक्शन घोषित करें
double recursive(int arr[], int i, int size) {
if (i == size - 1)
return arr[i];
if (i == 0)
return ((arr[i] + recursive(arr, i + 1, size)) / size);
return (arr[i] + recursive(arr, i + 1, size));
}
चरण 2 → double avg(int arr[], int size) {
return recursive(arr, 0, size);
}
चरण 3 → main() में
int arr[] = {1, 5, 3, 2, 6, 7};
int size = sizeof(arr) / sizeof(arr[0]);
average(arr, size);
रुकें
उदाहरण
#include <iostream>
using namespace std;
double recursive(int arr[], int i, int size) {
if (i == size - 1)
return arr[i];
if (i == 0)
return ((arr[i] + recursive(arr, i + 1, size)) / size);
return (arr[i] + recursive(arr, i + 1, size));
}
double average(int arr[], int size) {
return recursive(arr, 0, size);
}
int main() {
int arr[] = {1, 5, 3, 2, 6, 7};
int size = sizeof(arr) / sizeof(arr[0]);
cout << "पुनरावर्ती दृष्टिकोण का उपयोग करके सरणी का औसत: " << average(arr, size) << endl;
return 0;
}
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्नलिखित आउटपुट उत्पन्न करेगा:
पुनरावर्ती दृष्टिकोण का उपयोग करके सरणी का औसत: 4