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

C++ में n आकार के दिए गए सरणी में r तत्वों के सभी संभावित संयोजनों को प्रिंट करें

इस समस्या में, हमें n आकार की एक सरणी और एक धनात्मक पूर्णांक r दिया गया है। हमारा कार्य sizer की सरणी के तत्वों के सभी संभावित संयोजनों को प्रिंट करना है।

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -

Input: {5,6,7,8} ; r = 3
Output : {5,6,7}, {5,6,8}, {5,7,8}, {6,7,8}

इस समस्या को हल करने के लिए एक दृष्टिकोण तत्वों को ठीक करना होगा और फिर सभी संयोजनों को खोजने के लिए दूसरों पर पुनरावृत्ति या लूपिंग करना होगा। इसमें हमें सबसे पहले n-r+1 . को ठीक करना होगा केवल तत्व और बाकी पर लूप या पुनरावृत्ति।

उदाहरण

#include<iostream>
using namespace std;
void printRElementCombination(int arr[], int combination[], int start, int
end, int index, int r){
   if (index == r){
      cout<<"{ ";
      for (int j = 0; j < r; j++)
         cout << combination[j] << " ";
         cout<<"}\t";
      return;
   }
   for (int i = start; i <= end && end - i + 1 >= r - index; i++){
      combination[index] = arr[i];
      printRElementCombination(arr, combination, i+1, end, index+1, r);
   }
}
int main(){
   int arr[] = {1, 2, 3, 4, 5};
   int r = 3;
   int n = 5;
   int combination[r];
   cout<<"The combination is : \n";
   printRElementCombination(arr, data, 0, n-1, 0, r);
}

आउटपुट

संयोजन है -

{ 1 2 3 } { 1 2 4 } { 1 2 5 } { 1 3 4 } { 1 3 5 } { 1 4 5 }
{ 2 3 4 } { 2 3 5 } { 2 4 5 } { 3 4 5 }

एक ही समस्या को हल करने के अन्य तरीके संयोजन में वर्तमान तत्व को शामिल करने की जांच कर सकते हैं और आवश्यक आकार के सभी संयोजनों को प्रिंट कर सकते हैं। विचार वही है, हम तत्व पर पुनरावृति करेंगे और संयोजन को कॉम्बो सरणी में संग्रहीत करेंगे। लेकिन तत्व की फिक्सिंग नहीं की जाती है।

नीचे दिया गया कार्यक्रम आपके लिए समस्या को और अधिक समझने योग्य बना देगा -

उदाहरण

#include <iostream>
using namespace std;
void combinationUtil(int arr[], int n, int r, int index, int combo[], int i){
   if (index == r){
      cout<<"{";
      for (int j = 0; j < r; j++)
         cout << combo[j] << " ";
         cout<<"}\t";
         return;
   }
   if (i >= n)
      return;
   combo[index] = arr[i];
   combinationUtil(arr, n, r, index + 1, combo, i + 1);
   combinationUtil(arr, n, r, index, combo, i+1);
}
int main(){
   int arr[] = {1, 2, 3, 4, 5};
   int r = 3;
   int n = 5;
   int combo[r];
   cout<<"The combination is : \n";
   combinationUtil(arr, n, r, 0, combo, 0);
   return 0;
}

आउटपुट

संयोजन है -

{1 2 3 }    {1 2 4 }    {1 2 5 }    {1 3 4 }    {1 3 5 }    {1 4 5 }
      {2 3 4 }    {2 3 5 }    {2 4 5 }     {3 4 5 }

  1. किसी दिए गए स्रोत से गंतव्य तक सभी पथों को C++ में प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ़ दिया जाता है और हमें स्रोत से ग्राफ़ के गंतव्य तक के सभी पथों को प्रिंट करना होता है। निर्देशित ग्राफ़ किनारों वाला एक ग्राफ़ है जो शीर्ष a से b तक निर्देशित होता है। समस्या को समझने के लिए एक उदाहरण लेते हैं स्रोत =के गंतव्य =पी आउटपुट: K -> T -&

  1. C++ प्रोग्राम दी गई संख्याओं की सूची के सभी संभावित संयोजनों को उत्पन्न करने के लिए

    यह दी गई संख्याओं की सूची के सभी संभावित संयोजनों को उत्पन्न करने के लिए एक C++ प्रोग्राम है एल्गोरिदम Begin    Take the number of elements and the elements as input.    function Combi(char a[], int reqLen, int s, int currLen, bool check[], int l) :    If currLen>req

  1. सी ++ में किसी फ़ंक्शन में सरणी पैरामीटर का आकार कैसे मुद्रित करें?

    डेटा प्रकार का आकार sizeof() का उपयोग करके प्राप्त किया जा सकता है। एक प्रोग्राम जो C++ में किसी फ़ंक्शन में सरणी पैरामीटर के मुद्रण को प्रदर्शित करता है, वह निम्नानुसार दिया गया है। उदाहरण #include <iostream> using namespace std; int func(int a[]) {    cout << "Size: &quo