Le jeu modifié de Nim est un jeu d'optimisation de tableaux. Ce jeu prédit le gagnant en fonction du premier joueur et des mouvements optimaux.
Game Logic − Dans ce jeu, on nous donne un tableau {}, qui contient des éléments. Il y a généralement deux joueurs qui jouent au jeu, à savoir le joueur 1 et le joueur 2. Le but des deux est de s’assurer que tous leurs numéros sont supprimés du tableau. Maintenant, le joueur 1 doit supprimer tous les nombres divisibles par 3 et le joueur 2 doit supprimer tous les nombres divisibles par 5. Le but est de s'assurer qu'ils suppriment tous les éléments de manière optimale et trouvent le gagnant dans ce cas.
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.
Le code trouvera le nombre d'éléments que A peut supprimer, le nombre d'éléments que B peut supprimer et le nombre d'éléments qu'ils peuvent tous deux supprimer. En fonction du nombre d'éléments qu'ils peuvent tous deux supprimer, la solution est trouvée. Comme A supprime les premiers éléments, il peut gagner même s'il doit supprimer un élément de plus que B. Dans le cas normal, le joueur avec le nombre maximum d'éléments à supprimer gagne.
#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; }
Player 2 is the Winner
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!