Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

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++ में मितव्ययी संख्या (Frugal Number)

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया गया है। हमारा कार्य यह जांचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या (FRUGAL NUMBER) − एक संख्या जिसके अंकों की संख्या उस संख्या के अभाज्य गुणनखंडन में अंकों की संख्या से सख्ती से अधिक है। उदाहरण &

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

    एक पेंटाटोप संख्या को पास्कल के त्रिभुज में पांचवीं संख्या के रूप में वर्णित किया गया है। अब, चूंकि यह पांचवीं संख्या है, इसका मतलब है कि पास्कल के त्रिभुज में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है जो पास्कल के त्रिभुज की चौथी पंक्ति है। तो, इस

  1. - C++ में एडम नंबर जांचना

    इस खंड में हम देखेंगे कि दी गई संख्या एडम नंबर है या नहीं, इसकी जांच करने वाला प्रोग्राम कैसे लिखें। कोड में जाने से पहले देखते हैं कि एडम नंबर क्या है? एडम नंबर वह संख्या है, मान लीजिए n, यदि n का वर्ग और n के रिवर्स का वर्ग एक-दूसरे के रिवर्स हैं, तो वह संख्या एडम नंबर है। उदाहरण के लिए संख्या 13