Permainan diubah suai Nim ialah permainan pengoptimuman tatasusunan. Permainan ini meramalkan pemenang berdasarkan pemain permulaan dan pergerakan optimum.
Logik Permainan − Dalam permainan ini, kami diberikan tatasusunan{}, yang mengandungi elemen. Secara umumnya terdapat dua pemain yang bermain permainan iaitu pemain1 dan pemain2. Matlamat kedua-duanya adalah untuk memastikan bahawa semua nombor mereka dialih keluar daripada tatasusunan. Sekarang, pemain1 perlu mengalih keluar semua nombor yang boleh dibahagi dengan 3 dan pemain2 perlu mengeluarkan semua nombor yang boleh dibahagi dengan 5. Tujuannya adalah untuk memastikan bahawa mereka mengeluarkan semua elemen secara optimum dan mencari pemenang dalam kes ini.# . unsur-unsur yang boleh dialih keluar oleh kedua-duanya. Berdasarkan bilangan unsur yang mereka berdua boleh mengeluarkan penyelesaian didapati. Apabila A mengalih keluar elemen pertama, ia boleh menang walaupun dia perlu mengalih keluar satu elemen lebih daripada B. Dalam kes biasa, pemain dengan bilangan maksimum elemen untuk dialih keluar menang.
Array : {1,5, 75,2,65,7,25,6} Winner : playerB. A removes 75 -> B removes 5 -> A removes 6 -> B removes 65 -> No moves for A, B wins.
#include <bits/stdc++.h> using namespace std; int main() { int arr[] = {1,5, 75,2,65,7,25,6}; int n = sizeof(arr) / sizeof(arr[0]); int movesA = 0, movesB = 0, movesBoth = 0; for (int i = 0; i < n; i++) { if (arr[i] % 3 == 0 && arr[i] % 5 == 0) movesBoth++; else if (arr[i] % 3 == 0) movesA++; else if (arr[i] % 5 == 0) movesB++; } if (movesBoth == 0) { if (movesA > movesB) cout<<"Player 1 is the Winner"; cout<<"Player 2 is the Winner"; } if (movesA + 1 > movesB) cout<<"Player 1 is the Winner"; cout<<"Player 2 is the Winner"; ; return 0; }
Atas ialah kandungan terperinci Permainan Nim diubah suai dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!