এই সমস্যায়, একটি অ্যারে দেওয়া থাকে এবং আমাদের সেই অ্যারের এলিমেন্ট ব্যবহার করে নির্দিষ্ট আকার r-এর সব সাবসেট প্রিন্ট করতে হবে।
উদাহরণ দিয়ে বুঝি:
ইনপুট: array = {3, 5, 6} r = 2 আউটপুট: 3 5 3 6 5 6এই সমস্যায়, আমাদের অ্যারের নম্বরগুলোর সব কম্বিনেশন খুঁজে বের করতে হবে। এবং সেই r বিট কম্বিনেশনগুলো বাদ দিতে হবে যা ইতিমধ্যে সেটে আছে।
C++ উদাহরণ
#include <iostream> using namespace std; void printSubset(int arr[], int n, int r, int index, int data[], int i); int main(){ int arr[] = {3 , 5, 6}; int r = 2; cout<<"The sets are : "; int n = sizeof(arr) / sizeof(arr[0]); int data[r]; printSubset(arr, n, r, 0, data, 0); return 0; } void printSubset(int arr[], int n, int r, int index, int data[], int i){ if (index == r) { for (int j = 0; j < r; j++) cout<<data[j]<<" "; cout<<endl; return; } if (i >= n) return; data[index] = arr[i]; printSubset(arr, n, r, index + 1, data, i + 1); printSubset(arr, n, r, index, data, i + 1); }আউটপুট
সেটগুলো হলো:
3 5 3 6 5 6