[VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

job75

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

Staple, tu indiques que parfois tu n'obtiens pas de solution.

C'est normal, car tu n'étudies qu'un arrangement des 4 chiffres (celui où ils sont dans l'ordre). Il faut étudier les 24 possibilitées (4x3x2) si l'on veut toutes les solutions.

A+
 

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re

En réimplantant la fonction mini de pierrejean

J'ai toujours parfois un non affichage des solutions.

Autre problème: je cherche à vérifier que la formule du joueur contienne bien
chaque chiffre de la combinaison sortie.
Car si dans l'inputbox,on saisit à chaque nouvelle combinaison
6*4+0+0+0
On a accès au solution et la réponse est considérée comme juste (lol)


Une autre question
( à propos des formules, car j'essaye parallèlement une solution par formule, sans VBA)
Il semblerait qu'on ne puisse mettre plus de 33 éléments dans une "matrice")
Insertion/Noms/Définir
combi =
{1118;....;1278} ( -> 33 éléments)

dans un cellule , la formule suivante fonctionne
=INDEX(combi;33)

Mais si j'ajoute un élément dans combi (donc 34 élements)
=INDEX(combi;34) renvoie #REF
 
Dernière édition:

Lii

XLDnaute Impliqué
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

re
Re,

Staple, tu indiques que parfois tu n'obtiens pas de solution.

C'est normal, car tu n'étudies qu'un arrangement des 4 chiffres (celui où ils sont dans l'ordre). Il faut étudier les 24 possibilités (4x3x2) si l'on veut toutes les solutions.

A+
la fonction traite le cas x1, x2, x3 et x4 mais pas le cas x1, x4, x3 et x2 !
Pour le plaisir, tu peux adjoindre la table des formules ou créer une procédure qui les retrouve et, là, tu seras à 2 minutes 45 du bonheur ou presque, un peu moins avec l'aide de Job, car ...

tu as un autre problème : les nombres sont-ils réutilisables (avec 3, 9, 8 et 5, tu as 3*8+5/9-5/9 =24 !) ? Les 400 coups seront largement insuffisants !
 

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re


Lii: non il faut utiliser chaque chiffre une seule fois

Et je cherche de préférence une solution ou aucune solution n'est stockée sur une feuille
donc tout se faisant dans le code VBA.

Le code initial de job75 fonctionne parfaitement (mais il faut 1minute et quelque pour générer
les combinaisons et les formules)

Le code de job75 (modifié) dans la dernière version fonctionne mal, et je ne trouve toujours pas pourquoi.
Dans cette version, la solution est calculé que pour la combinaison en cours
mais cela ne fonctionne pas à 100%.

Pour mémoire , voire la page en anglais cité plus bas.

Les solutions des 404 arrangements
http://www.reijnhoudt.nl/24game/appendixa.html

Les explications mathématiques
http://www.reijnhoudt.nl/24game/


PS: Lii: ta version fonctionne parfaitement par les formules sont stockées dans la feuille.
Dans un second temps, j'essaierai d'adapter ton classeur en évitant de passer par un stockage sur des combinaisons et formules sur une feuille.
 
Dernière édition:

Lii

XLDnaute Impliqué
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

C'était plus un clin d'oeuil qu'une question ;).
J'en ai bien tenu compte dans mon fichier et ce n'est pas le cas dans les derniers exemplaires que tu as donnés !
 

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re


Je vous rappelle que je ne suis pas matheux

(et que j'ai pas assez de neurones pour adapter le code de job75 et celui de Lii en même temps) :D

Lii: ton fichier est très bien sauf le stockage sur feuille
(si tu as le temps d'utiliser le tableau de combinaisons qui se trouve dans
le fichier que j'ai joint, ce serait sympa)

Sinon je vais essayer de m'y atteler à petit pas

(car j'ai la tête qui chauffe)


De plus je serai absent ce week-end

Donc s'il y a des amateurs pour corriger mes erreurs de syntaxe
merci à eux.

PS: je regrette d'avoir mestismer les maths lors de ma scolarité
(mais faut dire que je n'ai eu pas des profs des plus pédagogues)
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

Lii : on n'utilise que les 4 chiffres obtenus, mais on les arrange de toutes les manières possibles.

Stapple, voici comment il faut faire :

1) Déclarer un tableau T(4) et le définir par :

T(1) = x1
T(2) = x2
T(3) = x3
T(4) = x4


2) Créer 4 boucles h i j k :

Code:
For h = 1 To 4
For i = 1 To 4
If i <> h Then
For j = 1 To 4
If j <> h And j <> i Then
For k = 1 To 4
If k <> h And k <> i And k <> j Then 
-------'Etude
End If
Next k
End If
Next j
End If 
Next i
Next h
3) Etude : on traite l'arrangement T(h) & T(i) & T(j) & T(k)

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

Staple, voici ton fichier modifié avec les 4 boucles. Je n'ai pas testé.

A+

Edit : j'ai testé, ça marche. J'ai retiré aussi la macro Open.
 

Fichiers joints

Dernière édition:

job75

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

Je crois qu'on est arrivé au bout. Le fichier que je t'ai envoyé à l'air de fonctionner, mais teste encore.

Par ailleurs, pour vérifier que les bons chiffres sont entrés par le joueur, il faut :

- supprimer tous les opérateurs et les parenthèses

- appliquer la fonction mini de pierrejean, en l'adaptant pour un seul argument

- comparer le résultat avec le nombre qui a été tiré.

A+
 

Lii

XLDnaute Impliqué
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

à tester (tables en VBA, pas dans la feuille).

Remarque : dans le dernier fichier, Job, on peut saisir plusieurs fois le même nombre sans problème. Cela ne devrait pas être !
 

Fichiers joints

Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re

• Merci job75 pour avoir effectué les modifications nécessaires
(j'ai du m'absenter mais au moins j'avais compris ou il fallait modifier)
• Comme tu le dis, on est presqu'au bout
Un petit souci, néanmoins, tel quel,toutes les solutions sont affichées
(même celles qui sont équivalentes mathématiquement)
• Et le souci,c'est que selon les cas,la msgbox est plus grande que l'écran
(vu le nombre de solutions)
• Il faudrait maintenant arriver à n'afficher que les solutions "uniques"
(il y a des doublons par fois aussi)
en gras et couleur ,les doublons ou les formules équivalentes
exemple pour: 3334
Il y aurait 2 solutions différentes: (3*3-3)*4,3+(3+4)*3
cad : 6*4 : (3*3-3)*4 et 3+21: 3+((4+3)*3)

(3*3-3)*4
3+(3+4)*3
3*(3+4)+3

(3*3-3)*4
3+(3+4)*3
3*(3+4)+3

3+(4+3)*3
(3+4)*3+3

3*(4+3)+3
3+(4+3)*3

(3+4)*3+3
3*(4+3)+3
(3*3-3)*4
3+(3+4)*3
3*(3+4)+3

(3*3-3)*4
3+(3+4)*3
3*(3+4)+3

3+(4+3)*3
(3+4)*3+3

3*(4+3)+3
3+(4+3)*3

(3+4)*3+3
3*(4+3)+3
(3*3-3)*4
3+(3+4)*3
3*(3+4)+3

(3*3-3)*4
3+(3+4)*3
3*(3+4)+3

3+(4+3)*3
(3+4)*3+3
3*(4+3)+3
3+(4+3)*3

(3+4)*3+3
3*(4+3)+3
(4+3)*3+3
4*(3*3-3)
(4+3)*3+3
4*(3*3-3)
(4+3)*3+3
4*(3*3-3)
(4+3)*3+3
4*(3*3-3)
(4+3)*3+3
4*(3*3-3)
(4+3)*3+3
4*(3*3-3)
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

Bon, il suffit d'appliquer la solution de skoobi (elle aura bien été utile) :

On Error Resume Next 'en début de macro
---------
solution.Add "=" & f1, "=" & f1


- Cstr n'est pas utile ici, puisque c'est du texte
- On Error GoTo 0 non plus

Modifie ton fichier et dis-moi si OK. Je modifie le mien.

A+

Edit
: non, je crois que ça ne sert à rien de faire ça. Alors là, je ne vois pas ce que l'on peut faire car il faudrait faire des analyses sur des groupes de chiffres...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re

J'ai teste ton fichier modifié
Et il y a toujours des doublons ;)
Mais on finira par y arriver (enfin surtout toi)
Ici pour 3958
(3*9)+5-8
(3*9)+(5-8)
(3*9+5)-8
(3*9)-8+5
(3*9-8)+5
(3*9)-(8-5)
5+(3*9)-8
(5+3*9)-8
(5-8)+3*9
(5-8)+(3*9)
5-(8-3*9)
(5-8)+9*3
(5-8)+(9*3)
5-(8-9*3)
5+(9*3)-8
(5+9*3)-8
(8-5)*9-3
(9*3)+5-8
(9*3)+(5-8)
(9*3+5)-8
(9*3)-8+5
(9*3-8)+5
(9*3)-(8-5)
9*(8-5)-3
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

La modif que je viens de te faire faire ne sert effectivement à rien, car au sens propre, il ne s'agit pas de doublons, mais de permutations de chiffres ou d'opérateurs.

Je ne vois pas comment les éviter...

A+

Edit : 14063 formules-solutions pour 404 combinaisons, cela fait une moyenne de 35 solutions par tirage...
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re


Comme je pars bientôt en week-end et malgré le fait
qu'apparemment aucun formuliste ne semble cogiter sur une solution par formule

je poste ce lien en espérant que certains formulistes du forum reléveront le défi pendant le week-end
http://mathforum.org/te/exchange/hosted/link/Make24ifYouCan.xls

(Mon idée avec une solution par formule est aussi ne pas stocker
les combinaisons dans une feuille, comme ce n'est pas le cas dans cet exemple réalisé par Don Link)
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re


Job75: il faudrait trouver un moyen de faire comprendre à VBA les lois de la distributivité (si mes souvenirs sont bon) :D


Ou alors arriver à formater la chaine sol par tranche de 5 lignes pour
les formules s'affichent sur 5 lignes dans la msgbox (chaque "tronçon de formule" étant séparé par un vTab
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re,

Pour les parenthèses, on peut peut-être revoir la question, en utilisant des parenthèses imbriquées (travail que tu as fait au début, mais il te manque le 5ème cas).

Pour les permutations de chiffres, comment les éviter puisque l'addition et la multiplication sont commutatives ?

A+

Edit : avec les parenthèses imbriquées, on obtenait 14754 formules, donc ce n'est pas ce qui résoudra le problème. Comment les auteurs du jeu l'on résolu, là est la question.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re



Je suis parti sur l'idée de laisser toutes les solutions mais en formatant la msgbox sur plusieurs colonnes.

(Je coince pour le moment -> j'ai ouvert une nouvelle discussion à ce sujet)



Autrement pour le reste, il n'y a pas moyen de "trier" les solutions équivalentes et d'en prendre qu'une (peu importe laquelle) comme solution ?
 

Staple1600

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Re

Désolé de vous laisser .

Je pars en week-end

J'espère que les formulistes se seront manifestés d'ici là.

Bon week-end à tous et grand merci encore à Job75 , sans oublier Lii et tous ceux qui s'intéressent à ce fil.
 

ROGER2327

XLDnaute Barbatruc
Re : [VBA] Maths -algorithm- "The 24 Game" aide demandée (combinaisons/permutations)

Bonsoir à tous.

J'ai attaqué le problème avec un marteau pilon :
  1. Recensement des tirages possibles, sans tenir compte de l'ordre.
  2. Une boucle dans laquelle je place aléatoirement les quatre nombres et j'essaie aléatoirement encore les opérateurs +, -, *, /.
    Sortie de la boucle si un calcul donne 24, ou si le nombre d'itérations atteint 10 000.

On obtient des choses...

Mode d'emploi du classeur :

Les macros sont associées à la feuille 'Feuil1'.
  1. La macro 'données' place les opérandes possibles dans les colonnes A à D.
  2. La macro 'vq' teste chaque quartet d'opérandes et propose éventuellement une réponse dans la colonne F.
  3. La macro 'test' répète 12 fois 'vq' et place les résultats dans les colonnes F à Q.(Environ 90 secondes.)
Les résultats sont écrits en notation polonaise inverse, i.e.
9 6 - 3 5 + *
signifie
(9 - 6)*(3 + 5)

Evidemment, on n'est jamais certain de ne pas laisser échapper une solution...

Enjoy !
 

Fichiers joints

Discussions similaires


Haut Bas