কম্পিউটার

n জিনিসের C++ পারমুটেশন এক সময়ে r নিয়ে k জিনিস একসাথে


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++ প্রোগ্রাম এবং সম্পূর্ণ পদ্ধতি (সাধারণ) শিখেছি যার মাধ্যমে আমরা এই সমস্যার সমাধান করেছি।

আমরা অন্যান্য ভাষা যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি। আমরা আশা করি আপনার এই টিউটোরিয়ালটি সহায়ক হবে৷


  1. C++ এ {0, 1, 2, 3, 4, 5} সংখ্যা সহ n-ম সংখ্যা

  2. C++ এ 0 হিসাবে অন্যান্য বাইনারি স্ট্রিং সহ XOR সহ চক্রীয় স্থানচ্যুতিগুলির গণনা

  3. C++ এ উদাহরণ সহ এক্সপ্রেশন ট্রি

  4. C++ এ 3n স্লাইস সহ পিৎজা