गणित में, यूलेरियन संख्या एक विशेष प्रकार की संयोजन संख्या है। यह उन क्रमपरिवर्तनों की संख्या को परिभाषित करता है जिनमें अगला तत्व पिछले वाले की तुलना में एक विशिष्ट संख्या है।
के रूप में चिह्नित,
ए(एन, एम) 1 से n तक का क्रमचय है जिसमें दो संख्याएँ m से भिन्न होती हैं।
समस्या कथन: इस समस्या में, हमें दो संख्याएँ m और n दी गई हैं। और हमें उन क्रमपरिवर्तनों की संख्या ज्ञात करनी है जो यूलेरियन संख्या हैं।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट: एन =4, एम =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
ए (एन, एम) =1, अगर एम =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