Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में दी गई सरणी में उप-सरणी माध्यिकाओं का माध्य ज्ञात करें


इस समस्या में, हमें आकार n की एक सरणी arr[] और एक पूर्णांक m दिया गया है। हमारा कार्य दी गई सरणी में उप-सरणी माध्यिकाओं का माध्य ज्ञात करना है।

कोड विवरण - यहाँ, हमें सरणी के माध्य को आकार m की उप-सरणी के माध्यिकाओं के माध्य के रूप में खोजना है।

आइए एक उदाहरण से समझते हैं:

इनपुट

arr[] = {2, 5, 3, 6, 1}, m = 3

आउटपुट

3.78

व्याख्या

आकार m की सभी उप-सरणियाँ हैं {2, 5, 3}, {5, 3, 6}, {3, 6, 1} उप-सरणी के माध्यिकाओं का माध्य,

$$(\left(\frac{2+5+3}{3}\right)+\left(\frac{5+3+6}{3}\right)+\left(\frac{3+6+1}{3}\right))/3=\left(\frac{10}{3}\right)+\left(\frac{14}{3}\right)+\left(\frac{10}{3}\right)/3=34/3/3=3.78$$

समाधान दृष्टिकोण

समस्या का एक सरल समाधान आकार m की सभी उप-सरणियाँ खोजना और उनके माध्यिकाओं की गणना करना है। फिर इन सभी माध्यिकाओं को जोड़ें और उप-सरणियों की संख्या से विभाजित करें। और परिणाम लौटाएँ।

एक अधिक कुशल दृष्टिकोण स्लाइडिंग विंडो एल्गोरिदम का उपयोग करना है। हम इंडेक्स 0 से शुरू होने वाली आकार m की विंडो खोजेंगे। प्रत्येक विंडो के लिए माध्य और योग खोजें। और अंत में योग को विंडो की संख्या से विभाजित करें और मान लौटाएँ।

हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम:

उदाहरण

#include <iostream> using namespace std; float calcMeanOfSubarrayMeans(int arr[], int n, int m) {    float meanSum = 0, windowSum = 0;    for (int i = 0; i < m; i++)       windowSum += arr[i];       meanSum += (windowSum / m);    for (int i = 0; i < n; i++) {       windowSum = windowSum - arr[i - m] + arr[i];       meanSum += (windowSum / m);    }    int windowCount = n - m + 1;    return (meanSum / windowCount); } int main() {    int arr[] = { 4, 1, 7, 9, 2, 5, 3};    int n = sizeof(arr) / sizeof(arr[0]);    int m = 3;    cout<<"The mean of subarray means is "<<calcMeanOfSubarrayMeans(arr, n, m);    return 0; }

आउटपुट

The mean of subarray means is 8.06667

  1. - C++ में सरणी में स्थानीय न्यूनतम ज्ञात करें

    मान लीजिए हमारे पास n तत्वों की एक सरणी A है। हमें सरणी का स्थानीय न्यूनतम ढूंढना है। सरणी A में, तत्व A[x] को स्थानीय न्यूनतम कहा जाता है यदि यह अपने दोनों पड़ोसियों से कम या बराबर है। कोने के तत्वों के लिए केवल एक पड़ोसी माना जाएगा। और यदि एक से अधिक स्थानीय न्यूनतम उपलब्ध हैं, तो केवल एक वापस करे

  1. - C++ में मैट्रिक्स का माध्य वेक्टर (Mean Vector) ज्ञात करें

    मान लीजिए हमारे पास M x N क्रम का एक मैट्रिक्स है, हमें दिए गए मैट्रिक्स का माध्य वेक्टर ढूंढना है। इसलिए यदि मैट्रिक्स नीचे की तरह है: 123 456 789 तो माध्य वेक्टर [4, 5, 6] है क्योंकि प्रत्येक कॉलम का माध्य (1 + 4 + 7)/3 = 4, (2 + 5 + 8)/3 = 5, और (3 + 6 + 9)/3 = 6 है। उदाहरण से, हम आसानी से पह

  1. - C++ में दिए गए सरणी के एलिमेंट्स के फैक्टोरियल का GCD खोजें

    मान लीजिए हमारे पास N एलिमेंट्स वाली एक सरणी A है। हमें सरणी के सभी एलिमेंट्स के फैक्टोरियल का GCD निकालना है। मान लीजिए एलिमेंट्स {3, 4, 8, 6} हैं, तो फैक्टोरियल का GCD 6 होगा। यहां हम ट्रिक देखेंगे। चूंकि दो संख्याओं का GCD वह सबसे बड़ी संख्या है जो दोनों को विभाजित करती है, तो दो संख्याओं के फैक्