Olivier Applet Java le compte est bon

Calcul du compte est bon


Cette applet propose de résoudre le problème du compte est bon.

Hélas, le temps a manqué pour terminer la gestion des exceptions. Ainsi pour tester l'applet il faut remplir tous les champs avec des valeurs superieures à 0 et ne pas mettre le résultat à trouver dans les plaquettes.

Le problème: il consiste à trouver un résultat compris entre 101 et 999 à l'aide de 6 plaquettes tirées au sort (parmis 2 plaquettes représentant les chiffres de 1 à 9 puis une de 10,25,50,75,100), en utilisant les opérations de base que sont l'addition, la soustraction, la multiplication et la division.Le tout en restant dans l'ensemble des entiers positifs.


Résolution du problème: pour la résolution de ce problème je souhaitais connaitre toutes les solutions possibles ce qui me contraint à calculer pour un problème donné dans le pire des cas :


combinaisons

Heureusement la contrainte de rester dans l'ensemble des entiers positifs limite le nombre des calculs possibles.Ainsi que les multiplications ou les divisions par un.Je laisse le soin aux personnes que cela intéressent de regarder le code.


Reste que la plus grande difficulté réside dans le filtrage des solutions.En effet pour un probléme on peut trouver de nombreuses solutions équivalentes ou comportant des étapes inutiles.La première des solutions est de travailler sur les combinaisons de plaquettes et non les plaquettes elles-même.Ceci évite dans le cas où il y a des plaquettes identiques de retrouver plusieurs fois les mêmes resultats et dans ce cas de les calculer réduisant ainsi le nombre de combinaisons.

Le deuxième filtrage : Si une solution contient les mêmes opérations qu'une autre solution ,la solution comportant le plus grand nombre d'opération est supprimée(ou à défaut, même nombre d'opération : solutions équivalentes, une est supprimée).


Exemple : 3 2 6 100 (600)

Solution 1 : 3 x 2 = 6 , 6 x100 = 600

Solution 2 : 6 x 100 = 600

Seule la solution n°2 est retenue.


Pour ceux qui ont eu le courage de lire jusqu'ici un petit exemple: