গণিতে, ইউলেরিয়ান সংখ্যা একটি বিশেষ ধরনের সমন্বয় সংখ্যা। এটি পরম্যুটেশনের সংখ্যা সংজ্ঞায়িত করে যেখানে পরবর্তী উপাদানটি আগেরটির থেকে বড় একটি নির্দিষ্ট সংখ্যা।
হিসেবে চিহ্নিত,
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