কম্পিউটার

C++ এ ইউলারিয়ান নম্বর


গণিতে, ইউলেরিয়ান সংখ্যা একটি বিশেষ ধরনের সমন্বয় সংখ্যা। এটি পরম্যুটেশনের সংখ্যা সংজ্ঞায়িত করে যেখানে পরবর্তী উপাদানটি আগেরটির থেকে বড় একটি নির্দিষ্ট সংখ্যা।

হিসেবে চিহ্নিত,

A(n, m) 1 থেকে n পর্যন্ত স্থানান্তর যেখানে দুটি সংখ্যা m দ্বারা পরিবর্তিত হয়।

সমস্যা বিবৃতি: এই সমস্যায়, আমাদের দুটি সংখ্যা m এবং n দেওয়া হয়েছে। এবং আমাদেরকে ইউলারিয়ান নম্বরের সংখ্যাক্রমের সংখ্যা খুঁজে বের করতে হবে।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট: n =4, m =2

আউটপুট: 11

ব্যাখ্যা:

1 থেকে 4 পর্যন্ত সংখ্যার সমস্ত পারমুটেশন হল −

1 2 3 4 1 2 4 3 1 3 2 4 1 3 4 2 1 4 2 3 1 4 3 2
2 1 3 4 2 1 4 3 2 3 1 4 2 3 4 1 2 4 1 3 2 4 3 1
3 1 2 4 3 1 4 2 3 2 1 4 3 2 4 1 3 4 1 2 3 4 2 1
4 1 2 3 4 1 3 2 4 2 1 3 4 2 3 1 4 3 1 2 4 3 2 1

সমস্ত 11টি পারমুটেশনের মধ্যে দুটি সংখ্যা m এর মধ্যে পার্থক্য রয়েছে।


সমাধান পদ্ধতি -

পারমুটেশনের সংখ্যা খুঁজে পেতে, আমরা ইউলারিয়ান সংখ্যার সূত্রটি ব্যবহার করব,

A(n, m) =0, যদি m> n বা n =0 হয়
A(n, m) =1, যদি m =0 হয়
A(n, m) =(n-m)A(n-1, m-1) + (m+1)A(n-1, m)


আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ


#include <iostream>
using namespace std;

int countEulerianNumber(int n, int m)
{
   if (m >= n || n == 0)
      return 0;
   if (m == 0)
      return 1;
   return ( ( (n - m) * countEulerianNumber(n - 1, m - 1) ) + ( (m + 1) * countEulerianNumber(n - 1, m) ) );
}

int main() {

   int n = 5, m = 3;
   cout<<"The number of Eulerian permutations is "<<countEulerianNumber(n, m);
   return 0;
}

আউটপুট −

The number of Eulerian permutations is 26

  1. C++ এ মিতব্যয়ী নম্বর

  2. C++ পেন্টাটোপ নম্বর

  3. C++ এ ছিটমহলের সংখ্যা

  4. C++ এ অ্যাডাম নম্বর