আমাদের N নম্বর দেওয়া হয়েছে। একটি কোডিং প্রতিযোগিতায় অংশগ্রহণকারীদের। লক্ষ্য নং খুঁজে. জোড়ার যেগুলি সম্ভব যখন একজন ব্যক্তি সর্বাধিক একজন অন্য ব্যক্তির সাথে জুটি বাঁধতে পারে। সুতরাং একটি জুটিতে সর্বাধিক 2 জন অংশগ্রহণকারী রয়েছে। অংশগ্রহণকারীদের একাও অংশ নেওয়ার অনুমতি দেওয়া হয়।
আমরা পুনরাবৃত্তি ব্যবহার করে এটি সমাধান করতে পারি যেখানে জোড়া=
-
গণনা=1 যখন n=0 বা 1 (শুধু একজন ব্যক্তি বাকি)
-
যদি ব্যক্তি অবিবাহিত থাকে n কমিয়ে n-1
-
এখন বাকি জুটির জন্য লোক বাকি =n-2
count=makePairs(p-1) + (p-1)*makePairs(p-2);
-
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট - ব্যক্তি=3
আউটপুট − জোড়া তৈরি করার উপায় − 4
ব্যাখ্যা −
If three persons are a,b,c then ways of pairing could be: (a,b), (c) → c remained single (a,c), (b) → b remained single (b,c), (a) → a remained single (a),(b),(c) → all remained single Total ways = 4
ইনপুট - ব্যক্তি=2
আউটপুট − জোড়া তৈরি করার উপায় − 2
ব্যাখ্যা −
I persons are a,b then ways of pairing could be − (a,b) → both paired (a),(b) → both remained single Total ways = 2
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
অংশগ্রহণকারীদের সংখ্যা সঞ্চয় করার জন্য আমরা একটি পূর্ণসংখ্যা ব্যক্তি নিই।
-
ফাংশন makePairs(int p) no লাগে। ইনপুট হিসাবে ব্যক্তিদের এবং তারা নিজেদের জোড়া করতে পারে এমন উপায়গুলির গণনা প্রদান করে৷
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
যদি p=0 বা 1 হয় তাহলে একমাত্র উপায় হল 1 একা থাকার।
-
অন্য ব্যক্তি অবিবাহিত থাকতে বেছে নিতে পারেন, তারপর অবশিষ্ট (p-1) (p1)*makePairs(p-2) ব্যবহার করে জোড়া খুঁজে পাবেন।
-
গণনার চূড়ান্ত মান নম্বর হিসাবে ফেরত দেওয়া হয়। শেষে জোড়ার উপায়।
উদাহরণ
#include<iostream> using namespace std; int makePairs(int p){ int count=0; // Base condition if (p==0 || p==1) { count=1; } else { count=makePairs(p-1) + (p-1)*makePairs(p-2); } return count; } int main(){ int persons = 5; cout <<"Number of ways to make pair ( or remain single ):"<<makePairs(persons); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেNumber of ways to make pair ( or remain single ): 26