কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম: স্ট্রিংয়ের পারমুটেশন সংখ্যা বের করা

একটি স্ট্রিংয়ের ক্যারেক্টারগুলো সাজিয়ে কতগুলো ভিন্ন পারমুটেশন বানানো যায়, সেটি বের করার প্রোগ্রাম। যদি সব ক্যারেক্টার ইউনিক হয়, তবে পারমুটেশন সংখ্যা = n!। কিন্তু ডুপ্লিকেট ক্যারেক্টার থাকলে fórmula: n! / (freq₁! × freq₂! × ...)।

উদাহরণ কোড

#include <iostream>
#include <string>
using namespace std;

long fact(long n) {
    if (n == 0 || n == 1) return 1;
    return n * fact(n - 1);
}

int countPermutation(string str) {
    int freq[26] = {0};
    for (char ch : str)
        freq[ch - 'a']++;

    int res = fact(str.size());
    for (int i = 0; i < 26; i++)
        if (freq[i] > 1)
            res /= fact(freq[i]);
    return res;
}

int main() {
    string n;
    cout << "Enter a string: ";
    cin >> n;
    cout << "Number of permutations: " << countPermutation(n);
    return 0;
}

আউটপুট

Enter a string: abbc
Number of permutations: 12

ব্যাখ্যা: "abbc" -এ ৪ ক্যারেক্টার, 그중 'b' দুবার। মোট পারমুটেশন = 4! / 2! = 24/2 = 12।

দ্রষ্টব্য: বড় স্ট্রিংয়ের জন্য ফ্যাক্টরিয়াল ওভারফ্লো হতে পারে। long long বা বড় সংখ্যা লাইব্রেরি ব্যবহার করা উচিত।

  1. C++ প্রোগ্রাম: গ্রাফে ব্রিজ এজের সংখ্যা নির্ণয়

  2. C++ দিয়ে সমীকরণের সমাধানের সংখ্যা বের করা

  3. একটি সংখ্যার ভাজকগুলোর মধ্যে সবচেয়ে বড় Good Number বের করা (C++)

  4. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা