गणित में, ऑयलरियन नंबर एक विशेष प्रकार की संयोजन संख्या है। यह उन क्रमचयों की संख्या को परिभाषित करता है जिनमें अगला तत्व पिछले तत्व से एक विशिष्ट संख्या से बड़ा होता है।
इसे इस प्रकार दर्शाया जाता है:
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