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

Staple1600

XLDnaute Barbatruc
Bonjour à tous

Je cherche à réaliser sous VBA la chose suivante:

Lister les solutions possibles de ce jeu:
Ce lien n'existe plus
C'est à dire : avec les opérateurs de base +,-,*,/,(,) : trouver 24 avec 4 chiffres de( 1à 9 ) tiré au hasard

Un petit cadeau pour ceux qui sauront m'aider :)
(car malheureusement les maths et moi on a pas trop d'accointances ;) )
[flash]http://www.novelgames.com/flashgames/game.swf?id=73[/flash]
 
Dernière édition:

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
Ce lien n'existe plus

Les explications mathématiques
Ce lien n'existe plus


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.
 

Pièces jointes

  • 24job75v5.zip
    26.8 KB · Affichages: 84
  • 24job75v5.zip
    26.8 KB · Affichages: 87
  • 24job75v5.zip
    26.8 KB · Affichages: 79
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 !
 

Pièces jointes

  • LeCompteEst 24V2.xls
    37 KB · Affichages: 109
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:

Statistiques des forums

Discussions
312 083
Messages
2 085 187
Membres
102 809
dernier inscrit
Sandrine83