leonSolaczuti / dcdl_logiciel

sources d'un logiciel pour jouer à DCDL
0 stars 0 forks source link

erreur sur des solutions en chiffres #7

Closed leonSolaczuti closed 1 year ago

leonSolaczuti commented 1 year ago

parfois des solutions qui n'en sont pas s'affichent. Par exemple ici une solution pour 404 s'affiche alors que ce n'est pas le compte recherché.

`Tirage :

[4, 10, 10, 3, 4, 75, 164]

 meilleure solution : 164      (10 points)

2ème meilleure solution : 163, 165 (9 points) 3ème meilleure solution : 162, 166 (8 points) 4ème meilleure solution : 161, 167 (7 points) 5ème meilleure solution : 160, 168 (6 points)


5 plaques :

(10 × 3 + 10) × 4 + 4 = 164 (75 - 4 - 10 × 3) × 4 = 164 (75 + 10 × 3 - 4) × 4 = 404

6 plaques :

(75 / 3 + 10 + 10 - 4) × 4 = 164 75 × (10 - 4) / 3 + 10 + 4 = 164 75 × (4 × 3 - 10) + 10 + 4 = 164 10 × 10 + 75 - 3 - 4 - 4 = 164 (75 / 3 + 4) × (10 - 4) - 10 = 164 (75 - 10 - 10) × 3 - 4 / 4 = 164 (75 + 10 - 3) × (10 - 4 - 4) = 164 `

leonSolaczuti commented 1 year ago

dans data.py : copie_operateurs_inverse[ii] = self.elements[ii].operateurs_inverse[0]

remplacé par : copie_operateurs_inverse[ii] = self.operateurs_inverse[ii] * self.elements[ii].operateurs_inverse[0]

et rajout d'un appel à Simplify2 dans le cas d'un produit

ça a l'air de marcher mais à vérifier sur plusieurs cas et améliorer les commentaires

leonSolaczuti commented 1 year ago

les solutions avec la correction :

Tirage :

[4, 10, 10, 3, 4, 75, 164]


 meilleure solution : 164      (10 points)

2ème meilleure solution : 163, 165 (9 points) 3ème meilleure solution : 162, 166 (8 points) 4ème meilleure solution : 161, 167 (7 points) 5ème meilleure solution : 160, 168 (6 points)


5 plaques :

(10 × 3 + 10) × 4 + 4 = 164 (75 - 4 - 10 × 3) × 4 = 164

6 plaques :

(75 / 3 + 10 + 10 - 4) × 4 = 164 75 × (10 - 4) / 3 + 10 + 4 = 164 75 × (4 × 3 - 10) + 10 + 4 = 164 10 × 10 + 75 - 3 - 4 - 4 = 164 (75 / 3 + 4) × (10 - 4) - 10 = 164 (75 - 10 - 10) × 3 - 4 / 4 = 164 (75 + 10 - 3) × (10 - 4 - 4) = 164

leonSolaczuti commented 1 year ago

le problème provenait de la simplification des solutions : celles-ci sont initialement bien calculées mais ici le 75-(4+3×10) devient 75-4+3×10 lors des simplifications qui ont pour but d'enlever les parenthèses inutiles et d'empêcher la redondance des solutions