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

उप-सरणी की संख्या की गणना करें जैसे कि उप-सरणी में मौजूद तत्वों का औसत सी ++ में उप-सरणी में मौजूद नहीं है।

सकारात्मक पूर्णांकों की एक सरणी गिरफ्तारी [] को देखते हुए। लक्ष्य arr[ ] के उप-सरणीयों की संख्या का पता लगाना है जिनके तत्वों का औसत arr[ ] के बाकी तत्वों के औसत से अधिक है जो इसमें मौजूद नहीं हैं।

उदाहरण के लिए

इनपुट

arr[ ] = { 3, 2, 4 }

आउटपुट

Count of number of sub-arrays such that the average of elements present in
the sub−array is greater than that do not present in the sub−array are: 2

स्पष्टीकरण

The subarrays are −
[ 3 ], [ 2 ], [ 4 ], [ 3,2 ], [ 2,4 ], [ 3,2,4 ].
Average of [ 4 ] is 4 which is more than the average of [ 2,3 ].
Average of [ 3,2,4 ] is 3 which is more than the average of [ ]
के औसत से अधिक है

इनपुट

arr[ ] = { 3, 3, 3 }

आउटपुट

Count of number of sub−arrays such that the average of elements present in
the sub−array is greater than that do not present in the sub−array are: 1

स्पष्टीकरण

The subarrays are −
[ 3 ], [ 3 ], [ 3 ], [ 3,3 ], [ 3,3 ], [ 3,3,3 ].
Average of [ 3,3,3 ] is 3 which is more than the average of [ ]
. के औसत से अधिक है

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

इस दृष्टिकोण में एक उपसर्ग योग सरणी बनाएं जो सूचकांक i तक तत्वों के योग को new_arr [i] में संग्रहीत करेगा। अब हमारे पास पिछले तत्व तक का योग है, फिर arr[i] तक योग की गणना करें और तत्वों की गणना j−i+1 के रूप में करें और औसत की गणना करें।

  • इनपुट के रूप में एक सरणी arr[] लें।

  • फ़ंक्शन गिनती (int arr [], int आकार) arr [] लेता है और उप-सरणी की गिनती देता है जैसे कि उप-सरणी में मौजूद तत्वों का औसत उप-सरणी में मौजूद नहीं होने से अधिक होता है।

  • पिछले इंडेक्स तत्वों तक योग को स्टोर करने के लिए एक सरणी new_arr[size] लें।

  • i=0 से i<आकार पर जाएं और new_arr[i] को new_arr[i−1]+arr[i−1] के साथ सेट करें।

  • अब दो for लूप का उपयोग करके new_arr[ ] को पार करें।

  • अब कुल_1 की गणना पिछले उपसरणियों के योग के रूप में करें। और इसमें मौजूद तत्व count_1 के रूप में।

  • अगले उप-सरणी और उसमें मौजूद तत्वों के योग के रूप में कुल_2 की गणना करें।

  • औसत की गणना check_1 =Total_1 / count_1 के रूप में करें; और चेक_2 =कुल_2 /गिनती_2;

  • यदि औसत चेक_1> चेक_2 तो वृद्धि की गणना करें।

  • लूप के अंत में परिणाम के रूप में वापसी की गणना करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int count(int arr[], int size){
   int count = 0;
   int new_size = size + 1;
   int new_arr[new_size] = { 0 };
   for (int i = 1; i < new_size; i++){
      new_arr[i] = new_arr[i − 1] + arr[i − 1];
   }
   for (int i = 1; i < new_size; i++){
      for (int j = i; j < new_size; j++){
         int total_1 = new_arr[j] − new_arr[i − 1];
         int count_1 = j − i + 1;
         int total_2 = new_arr[size] − total_1;
         int count_2 = 0;
         if((size − count_1) == 0){
            count_2 = 1;
         } else {
            count_2 = size − count_1;
         }
         int check_1 = total_1 / count_1;
         int check_2 = total_2 / count_2;
         if (check_1 > check_2){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = { 2, 6, 2, 4 };
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of number of sub−arrays such that the average of elements present in
   the sub−array "<< "is greater than that not present in the sub−array are: "<<count(arr, size);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count the number of sub−arrays such that the average of elements present in the subarrayis greater than that not present in the sub-array are: 6

  1. प्राकृतिक संख्याओं की गणना करें जिनके सभी क्रमचय C++ में उस संख्या से अधिक हैं

    हमें एक प्राकृत संख्या दी गई है मान लीजिए, संख्या और कार्य उन सभी प्राकृत संख्याओं की गणना करना है जिनके सभी क्रमपरिवर्तन उस संख्या से अधिक हैं। हम निम्नलिखित शर्तों के साथ काम कर रहे हैं - डेटा केवल प्राकृतिक संख्या होना चाहिए किसी प्राकृत संख्या के सभी संभावित क्रमपरिवर्तन या व्यवस्था दी गई

  1. आकार K के उप-सरणी की संख्या और C++ में औसत से अधिक या थ्रेसहोल्ड के बराबर औसत

    मान लीजिए कि हमारे पास arr पूर्णांकों की एक सरणी है और दो पूर्णांक k और थ्रेशोल्ड हैं। हमें k आकार के उप-सरणियों की संख्या और थ्रेशोल्ड से अधिक या उसके बराबर औसत का पता लगाना है। तो अगर इनपुट इस तरह है:[2,2,2,2,5,5,5,8] और के =3 और थ्रेशोल्ड =4, तो आउटपुट 3 होगा। क्योंकि उप-सरणी [2,5,5] , [5,5,5] और

  1. जांचें कि क्या प्रत्येक पंक्ति से एक संख्या का चयन किया जा सकता है जैसे कि संख्याओं का xor C++ में शून्य से अधिक है

    मान लीजिए हमारे पास N x M आकार का एक 2D सरणी है। कार्य यह जांचना है कि क्या हम प्रत्येक पंक्ति से एक संख्या का चयन कर सकते हैं, इस तरह से कि उन तत्वों का XOR गैर-शून्य या 0 से अधिक है। मान लीजिए कि एक मैट्रिक्स है इस तरह - 7 7 7 10 10 7 यदि हम XOR करते हैं, तो उत्तर शून्य नहीं होगा, क्योंकि दो