এই গেমটিতে, 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