J'écris un programme qui traite des cartes et d'une main. Une main a 5 cartes. Je veux savoir quel est un bon algorithme pour décider quelle combinaison de cartes ajouter jusqu'à 15. Kings, Queens, Jacks, comptez 10 et un As compte comme un.Je cherche des combinaisons qui totalisent 15 dans une carte de mains
Répondre
Ceci est très similaire au sous-ensemble des sommes que je récemment répondais ici: Subset Sum algorithm
Le seul que vous tweak besoin de faire est de garder une trace dont la carte a été utilisée pour obtenir possible[i]
à possible[i+n]
. Vous pouvez garder une trace de ceux-ci en utilisant un second tableau, appelons-le card_used
, puis définissez card_used[i+n]
à une référence/index de la carte utilisée pour obtenir de i
à i+n
. Puis à la fin, vous pouvez récupérer la liste des cartes utilisées pour arriver à la somme de 15 (en supposant que est vrai) en faisant marche arrière à travers la liste card_used
.
1) obtenir la main
boucle 2) à travers la main
2a) chaque itération, ajoutez la valeur de la voiture à un total en cours d'exécution. 2b) si jamais vous arrivez à plus de 15, vous pouvez quitter cette itération