n, r, k দেওয়া হয়েছে, এখন আমাদের খুঁজে বের করতে হবে কিভাবে আমরা n থেকে r জিনিসগুলি নির্বাচন করতে পারি যাতে নির্দিষ্ট k জিনিসগুলি সর্বদা একত্রিত হয়, উদাহরণস্বরূপ।
Input : n = 8, r = 5, k = 2 Output : 960 Input : n = 6, r = 2, k = 2 Output : 2
এই সমস্যার জন্য আমাদের একটু জ্ঞান দরকার কারণ এই সমস্যাটি আমাদেরকে n এবং r-এর পারমুটেশন খুঁজে বের করতে বলছে যাতে k জিনিস একত্রিত হয়।
সমাধান খোঁজার পদ্ধতি
এই প্রশ্নের জন্য আমাদের সূত্র তৈরি করতে হবে, এবং এটি আমাদের উত্তর দেবে।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int fact(int n){ // function to calculate factorial of a number
if(n <= 1)
return 1;
return n * fact(n-1);
}
int npr(int n, int r){ // finding permutation
int pnr = fact(n) / fact(n - r);
return pnr;
}
int countPermutations(int n, int r, int k){ // the formula that we came up with
return fact(k) * (r - k + 1) * npr(n - k, r - k);
}
int main(){
int n = 8;
int r = 5;
int k = 2;
cout << countPermutations(n, r, k);
return 0;
} আউটপুট
960
উপরের কোডের ব্যাখ্যা
উপরের পদ্ধতিতে, আমরা এই সমস্যার জন্য আমাদের উত্তর গণনা করার জন্য আমাদের সূত্র তৈরি করার চেষ্টা করি, আমরা যে সূত্রটি তৈরি করেছি তা হল (k!) * (r - k + 1) * P(n-k, r-k)। ( P(x, y) হল x থেকে y নির্বাচনের পারমুটেশনের সংখ্যা) তাই আমরা আমাদের সূত্র রাখি, এবং আমরা উত্তর গণনা করি।
উপসংহার
এই টিউটোরিয়ালে, আমরা এক সময়ে k জিনিষের সাথে r নেওয়া n জিনিসগুলির পারমুটেশন খুঁজে বের করার জন্য একটি সমস্যার সমাধান করি। আমরা এই সমস্যার জন্য C++ প্রোগ্রাম এবং সম্পূর্ণ পদ্ধতি (সাধারণ) শিখেছি যার মাধ্যমে আমরা এই সমস্যার সমাধান করেছি।
আমরা অন্যান্য ভাষা যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি। আমরা আশা করি আপনার এই টিউটোরিয়ালটি সহায়ক হবে৷