[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:

Staple1600

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

Bonsoir Job75, le fil , le forum


J'ai pu tester ton dernier fichier (tout semble OK pour ce qui est des solutions)

Merci et bravo à toi

Pour ce qui concerne que j'appelle les matrices.

Je pensais stocké dans des "matrices" nommées
(par Insertion/Noms/Définir)

ce qui fait 396/33=12 noms à définir ainsi

cI={1128,...}
cII={....,....}
cIII={....,....}
etc

ensuite pour le tirage

CHOISIR(ENT((ALEA()*n)+1);CI,CII,...)

(Je finaliserai cela demain)

Toujours dans l'idée ne rien stockée dans les cellules.

Bonne fin de week-end à tous
 

ROGER2327

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

Bonsoir à tous

Comme prévu, voici le bon classeur. Le mode d'emploi est celui indiqué le 25/10 :

Bonsoir à tous.

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)

Je compléterai le travail en essayant d'obtenir TOUTES LES SOLUTIONS FORMELLES en utilisant la même méthode. Pour l'instant, j'en trouve 14754 en un quart d'heure. C'est un peu long... mais, me semble-t-il, intéressant à cause de la méthode reposant uniquement sur le recensement des cinq formules
x1 x2 ¤ x3 ¤ x4 ¤
x4 x3 x1 x2 ¤ ¤ ¤
x1 x2 ¤ x3 x4 ¤ ¤
x4 x1 x2 ¤ x3 ¤ ¤
x3 x1 x2 ¤ ¤ x4 ¤
et la répétition de tirages aléatoires des nombres et des opérateurs. Il en résulte un code simplissime.

A bientôt.


Note pour STAPLE1600
Désolé pour la notation polonaise inverse (NPI). Cela me permet une écriture plus concise et surtout plus logique. Lorsque j'écris
9 6 - 3 5 + x
je vois clairement l'ordre des opérations : une différence, puis une somme, enfin le produit des résultats précédents. Si l'on veut vraiment revenir aux notations des siècles passés, rien n'empêche d'écrire un traducteur... mais bon courage car la syntaxe est plutôt complexe !
 

Pièces jointes

  • Vingt-quatre-2.zip
    25.7 KB · Affichages: 102

ROGER2327

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

Bonsoir à tous.

Je joins le résultat de ma recherche des solutions par un algorithme aléatoire en fournissant deux fonctions en VBA. L'une donne une solution (s'il y en a), l'autre donne toutes les solutions pour un ensemble de quatre nombres donnés.

Le temps de calcul (de l'ordre de 2 min 30 s à 3 min) pour toutes les solutions des 495 ensembles possibles vous semble-t-il raisonnable ?

Les commentaires et suggestions sur le code seront les bienvenus.

A bientôt.
 

Pièces jointes

  • Vingt-quatre-3.zip
    37.4 KB · Affichages: 104

Staple1600

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

Bonjour à tous


Désolé ne pas avoir pu revenir sur le forum plutôt.

(Problème de FAI)

Roger: je regarde ton fichier dès que possible.


Et je continue à essayer une version par formule (sans VBA), pour le fun.
 

ROGER2327

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

Bonjour à tous,

Bon retour à STAPLE1600.
Vous trouverez ci-joint une version améliorée de ma recherche. Laissez tomber la précédente.
Après plusieurs centaines d'essais, la certitude de trouver tous les résultats souhaités n'est pas totale, mais nettement améliorée. Ce travail a été très intéressant pour moi, même s'il ne contribue peut-être pas beaucoup à la résolution du problème initial...
À vous de voir...

A bientôt,
ROGER2327

P.S. : J'allais oublier ! Je livre les résultats avec les bonnes vieilles parenthèses. Tant pis pour la logique...
 

Pièces jointes

  • Vingt-quatre-4-ed.zip
    40.2 KB · Affichages: 106

ROGER2327

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

Bonsoir
Un complément aux communications précédentes :​
J'ai poursuivi le test de la procédure S24 pour voir quelles valeurs des bornes supérieures des paramètres m et k permettraient d'obtenir tous les résultats. Dans l'absolu, il est certain qu'aucune borne ne permet de dire qu'on obtiendra toutes les solutions à chaque essai. Je livre toutefois les valeurs observées sur une série d'environ 4 000 essais.​
Sur le premier graphique, on voit que fixer m à 1 000 n'aurait permis d'obtenir les 404 quadruplets permettant d'obtenir 24 que dans 76% des essais.
Fixer m à 2 000 aurait permis de les obtenir dans 98% des essais.
La valeur qui aurait permis d'obtenir le résultat complet lors de chacun des 4 000 essais est 4 529.
Mais rien ne dit qu'au 4 001ème essai, un valeur encore supérieure n'eût été nécessaire !​
Le deuxième graphique s'interprète de la même façon pour la deuxième partie de la procédure. On voit par exemple que, sous réserve que la première partie ait fourni les 404 quadruplets susceptible de fournir 24, il aurait fallu fixer k à 5 000 pour obtenir tous résultats dans 60% des essais.
La valeur qui aurait permis d'obtenir le résultat complet lors de chacun des 4 000 essais est 8 318.​
Je ne serais pas choqué qu'on trouvât que cette étude est inutile : je l'ai faite par simple curiosité. Je serais par contre heureux que ceux qui partagent ma curiosité me fissent part de leur réflexion. Merci d'avance...​
A bientôt, j'espère,
ROGER2327
 

Pièces jointes

  • Param_1-2.zip
    16.9 KB · Affichages: 105

Staple1600

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

Bonjour à tous


Roger:

J'ai testé (sous XL2000) ton fichier du 4/11
Bravo pour ta solution par fonctions VBA personnalisées.

Malheureusement je ne pourrais t'apporter d'autres commentaires plus techniques et mathématiques vu mon niveau en maths.


Es-tu intéressé par l'autre jeu (The four four's game) que je citais dans ce message ?
Lien supprimé
 
Dernière édition:

Staple1600

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

Bonjour à tous


Un petit up

Pour inviter de nouveaux les formulistes du forum à m'aider

Petit rappel: les différentes solutions VBA de ce fil fonctionnent toutes
(merci encore à Job75 et Roger2327 et Lii et ceux que j'aurai oublié)


Pour le fun, j'essaie de faire une version par formule.

Le plus dur étant de trouver une formule qui puisse trouver les solutions
pour une combinaison donnée.

Voila au j'en suis pour ce qui est de la génération des combinaisons
par formules.

(voir la pj de ce fil :Lien supprimé
 

Staple1600

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

Bonjour à tous


Voila une version (100 % formule)

Merci de bien vouloir la tester.

J'attends vos commentaires.

Merci à tous ceux qui m'ont aidés dans cette quête.

IMPORTANT: Pour tester ce classeur, il faut cocher dans :

Options/Calcul

[x] Itération

Ne pas oublier de décocher en fin d'utilisation.
 

job75

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

Rebonjour Staple,

Super cette solution par formule.

J'ai testé en utilisant 5 chiffres, par exemple (2*3)*(3+1)+5. Il faudrait qu'apparaisse "Chiffres non valides".

C'est de ma faute, je n'y avait pas pensé. Il devrait suffire de rajouter à la formule définissant tricell :

+10000*ESTNUM(PETITE.VALEUR(p;5))

Edit : il faut aussi définir p par :

=1*STXT(chiffres;LIGNE(Feuil1!$1:$5);1)

A+
 
Dernière édition:

job75

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

Re,

Autre amélioration possible, écrire dans le mode d'emploi :

Pour changer de combinaison, sélectionnez la cellule B2 et appuyez sur la touche F9.

A+
 
Dernière édition:

Staple1600

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

Re

Job75
En essayant tes modifs, cela ne fonctionne plus avec 4 chiffres
mais effectivement affiche Chiffres non valides si 5 chiffres

=tricell renvoie #VALEUR

Je ne trouve pas comment gérer les cas supérieurs à 4 chiffres

Mais bon, si on suit la règle, il n'y a pas de problème.

F9 ne fonctionne pas

voir message d'abcd
Lien supprimé
 
Dernière édition:

job75

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

Re,

Relis bien mes posts, car ça marche chez moi.

Pour la touche F9, pas nécessaire de sélectionner B2, il suffit en fait de modifier la formule en B2 en écrivant :

=combijeu

Edit : ah non, mille excuses Staple, la feuille est recalculée quand on modifie la formule en E5. Il faut garder la formule initiale en B2

A+
 
Dernière édition:

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T