इस समस्या में, हमें दो पूर्णांक n और m दिए गए हैं, जहाँ n चित्रों की संख्या है और m उपलब्ध रंगों की संख्या है। हमारा काम एक ऐसा प्रोग्राम बनाना है जो यह पता लगाएगा कि हम कितने तरीकों से पेंटिंग को इस तरह से पेंट कर सकते हैं कि किसी भी लगातार पेंटिंग का रंग एक जैसा न हो।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
n = 3, m =3
आउटपुट
12
स्पष्टीकरण
P1 P2 P3 C1 C2 C3 C1 C3 C2 C1 C2 C1 C1 C3 C1 C2 C1 C2 C2 C3 C2 C2 C1 C3 C2 C3 C1 C3 C1 C3 C3 C2 C3 C3 C1 C2 C3 C2 C1
इस समस्या को हल करने के लिए, हम सभी n चित्रों को m रंगों से पेंट कर सकते हैं, अब अगली पेंटिंग को n-1 रंग का उपयोग करके चित्रित किया जा सकता है, जिसमें अंतिम पेंटिंग को पेंट करने के लिए उपयोग किए गए रंग को छोड़कर। तो, तरीकों की कुल संख्या है,
n*(m-1)(n-1)
हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,
उदाहरण
#include <iostream> #define modd 1000000007 using namespace std; unsigned long calcPower(unsigned long base, unsigned long power, unsigned long p){ unsigned long result = 1; base = base % p; while (power > 0) { if (power & 1) result = (result * base) % p; power = power >> 1; base = (base * base) % p; } return result; } int colorPainting(int n, int m){ return calcPower(m - 1, n - 1, modd) * m % modd; } int main(){ int n = 5, m = 7; cout<<"The number of ways to color the given paintings is : "<<colorPainting(n, m); return 0; }
आउटपुट
The number of ways to color the given paintings is : 9072