इस गेम में, दो खिलाड़ी X और Y हैं। हमारा कार्य यह प्रेडिक्ट करना है कि यदि दोनों इष्टतम खेलते हैं और X गेम शुरू करता है तो कौन जीतेगा।
गेम
कॉइन गेम में, N और M संख्या के सिक्कों वाले दो ढेर हैं। खिलाड़ियों में से एक गेम के लिए दो ढेरों में से किसी एक को चुनता है। फिर कार्य ढेर को दो हिस्सों में विभाजित करना है जब तक कि कोई एक खिलाड़ी ढेर को आगे विभाजित न कर सके।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
Input: M = 2 , N = 2 Output:X
व्याख्या - X गेम शुरू करता है और M ढेर चुनता है (दोनों समान हैं), और ढेर को दो में विभाजित करता है। अब प्रत्येक में केवल एक सिक्का होगा, इसलिए Y के पास कोई चाल नहीं बचेगी। इससे X जीत जाएगा।
इस समस्या को हल करने के लिए, हमें उन संभावनाओं को देखना होगा कि खिलाड़ी X जीतता है। वह स्थिति जिसमें खिलाड़ी X जीतता है वह है जब ढेरों में से किसी में भी सम संख्या में सिक्के हों। अन्यथा, Y विजेता होगा।
हमारे तर्क के कार्यान्वयन को दिखाने वाला प्रोग्राम
उदाहरण
#include <iostream> using namespace std; int isXWinner(int M, int N) { if (M % 2 == 0 || N % 2 == 0) return 1; return 0; } int main() { int M = 1, N = 2; cout<<"Game Starts!\n"; if(isXWinner(M,N)) cout<<"Player X is the Winner"; else cout<<"Player Y is the Winner"; return 0; }आउटपुट
Game Starts! Player X is the Winner