n, r, k দেওয়া আছে। এখন আমাদের বের করতে হবে n জিনিস থেকে r জিনিস কতভাবে বেছে নেওয়া যায় যাতে নির্দিষ্ট k জিনিস সদা একসাথে থাকে। উদাহরণ −
ইনপুট: n = 8, r = 5, k = 2 আউটপুট: 960 ইনপুট: n = 6, r = 2, k = 2 আউটপুট: 2
এই সমস্যাটি সমাধানের জন্য আমাদের কিছু জ্ঞান প্রয়োজন কারণ এটি n এবং r-এর পারমুটেশন বের করতে বলে যেখানে k জিনিস একসাথে থাকবে।
এই প্রশ্নের জন্য আমাদের একটি সূত্র তৈরি করতে হবে, যা আমাদের উত্তর দেবে।
#include <bits/stdc++.h> using namespace std; int fact(int n){ // ফ্যাক্টোরিয়াল ফাংশন if(n <= 1) return 1; return n * fact(n-1); } int npr(int n, int r){ // পারমুটেশন ফাংশন int pnr = fact(n) / fact(n - r); return pnr; } int countPermutations(int n, int r, int k){ // আমাদের তৈরি করা সূত্র 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 বেছে নেওয়ার পারমুটেশন সংখ্যা)। এই সূত্রটি প্রয়োগ করে আমরা উত্তর বের করেছি।
এই টিউটোরিয়ালে আমরা n জিনিস থেকে r জিনিস নেওয়ায় k জিনিস সদা একসাথে থাকার পারমুটেশন বের করার সমস্যা সমাধান করেছি। আমরা এই সমস্যার C++ প্রোগ্রাম ও সম্পূর্ণ পদ্ধতি দেখেছি। একই প্রোগ্রাম C, Java, Python ইত্যাদি ভাষায়ও লিখা যায়। আশা করি আপনি এই টিউটোরিয়ালটি সহায়ক পাবেন।