Soucis PHP - help me

samsam
Invité n'ayant pas de compte PHPfrance

08 juil. 2016, 11:24

Bonjour,

Je suis en école à epitech et voilà j'ai un soucis ;

J'ai 4 variables :
v1 = 5
v2 = 5
v3 = 5
v4 = 1

L'objectif est d'obtenir 24 en utilisant une et une seule fois les 4 variables ci dessus, les opération autorisés sont +, -, * et ainsi que les parenthèses

Mammouth du PHP | 1967 Messages

08 juil. 2016, 11:59

Moi je ferais 2 tableaux, le premier généré automatiquemen avec tes 4 variable dans tous les ordres possible et puis un array_unique pour limité les calcul en cas de valeur similaire
le 2eme que tu crée une fois pour toute avec toutes les opération possible pour 4 variables. ensuite tu test toutes les possibilité du tableaux 1 avec toutes les possibilité du tableaux 2 et tu t'arète si tu trouve ta valeur
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

08 juil. 2016, 14:33

C'est bizarre car j'ai l'impression qu'il n'y a pas de réponse avec cet énoncé.

Pour résoudre facilement le calcul :
(5 * 5) - 1 =24
=> Mais tu n'utilises alors pas toutes les variables (est-ce problématique ? )

Si on force l'usage de toutes les variables, on ne peut pas arriver à 24 mais le plus proche est 25
((5 + 1) x 5) - 5 = 25

Source : dcode - http://www.dcode.fr/compte-est-bon
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

08 juil. 2016, 14:41

Pour coder le résolveur, le principe est de faire une fonction récursive qui va tester à chaque fois les 3 opérateurs (+ - *) sur 2 variables puis va se rappeler pour le résultat obtenu avec une des variables non encore utilisé, et ainsi de suite.

Voici 2 pages qui t'expliqueront le fonctionnement de l'algorithme à mettre en place :
http://eternitygames.free.fr/LeCompteEstBon.html
http://le.compte.est.bon.free.fr/Algo.htm
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 1967 Messages

08 juil. 2016, 15:16

Ta récursive ne testera pas (5+1)*(5+5) non ?
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube