এই সমস্যায়, আমাদেরকে n আকারের একটি অ্যারে এবং একটি ধনাত্মক পূর্ণসংখ্যা r দেওয়া হয়েছে। আমাদের কাজ হল সাইজার অ্যারের উপাদানগুলির সম্ভাব্য সমস্ত সংমিশ্রণ প্রিন্ট করা।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক -
ইনপুট:{5,6,7,8}; r =3আউটপুট :{5,6,7}, {5,6,8}, {5,7,8}, {6,7,8}
এই সমস্যাটি সমাধান করার জন্য একটি পদ্ধতি হবে উপাদানগুলিকে ঠিক করা এবং তারপরে সমস্ত সংমিশ্রণগুলি খুঁজে পেতে অন্যের উপর পুনরাবৃত্ত বা লুপ করা। এতে, আমাদের প্রথমে n-r+1 ঠিক করতে হবে শুধুমাত্র উপাদান এবং লুপ বা বাকি উপর পুনরাবৃত্তি।
উদাহরণ
#includeনেমস্পেস ব্যবহার করে std;void printRElementCombination(int arr[], int combination[], int start, intend, int index, int r){ if (index ==r){ cout<<"{ "; (int j =0; j =r - index; i++){ সমন্বয়[index] =arr[i]; printRElement Combination(arr, combination, i+1, end, index+1, r); }}int main(){int arr[] ={1, 2, 3, 4, 5}; int r =3; int n =5; int সংমিশ্রণ [আর]; cout<<"সংমিশ্রণটি হল :\n"; printRElement Combination(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 }একই সমস্যা সমাধানের অন্যান্য পদ্ধতিগুলি সংমিশ্রণে বর্তমান উপাদানের অন্তর্ভুক্তি পরীক্ষা করে এবং প্রয়োজনীয় আকারের সমস্ত সংমিশ্রণ প্রিন্ট করে হতে পারে। ধারণাটি একই, আমরা এলিমেন্টের উপর রিকিউর করব এবং কম্বো অ্যারেতে কম্বিনেশন সংরক্ষণ করব। কিন্তু উপাদানের ফিক্সিং করা হয় না।
নীচের প্রোগ্রামটি আপনার কাছে সমস্যাটিকে আরও বোধগম্য করে তুলবে -
উদাহরণ
#includenamespace ব্যবহার করে std;void combinationUtil(int arr[], int n, int r, int index, int কম্বো[], int i){ if (index ==r){ cout<<" {"; (int j =0; j =n) রিটার্ন; কম্বো[সূচী] =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 কম্বো [আর]; cout<<"সংমিশ্রণটি হল :\n"; combinationUtil(arr, n, r, 0, combo, 0); রিটার্ন 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 }