URL: https://linuxfr.org/forums/programmationautre/posts/besoin-d-un-generateur-de-formules-pour-un-projet Title: Besoin d'un Générateur de Formules pour un Projet Authors: Jnath Date: 2024年08月12日T13:54:53+02:00 License: CC By-SA Tags: algorithme, mathématiques et calcul_scientifique Score: 5 ## Contexte Pour un projet, j'ai besoin d'un programme/algorithme capable de générer des formules mathématiques optimales. Le programme doit prendre en entrée une valeur cible ainsi qu'une liste de valeurs données (entiers, fractions, nombres irrationnels, etc.) et produire une expression mathématique qui aboutit à la valeur cible en utilisant **toute** ces valeurs. ## Objectif L'objectif est de créer une solution optimale, c'est-à-dire une formule qui utilise le moins de valeurs possibles, tout en étant mathématiquement correcte. Le programme doit également être capable de gérer des cas plus complexes impliquant des opérations avancées comme les racines carrées et les puissances. ## Exemples Simples ### **Pour obtenir 2** à partir des valeurs : * $e$ * 2ドルe$ Le programme devrait proposer la solution optimale suivante : $$\frac{2e}{e} = 2 $$ ### **Pour obtenir 3** à partir des valeurs : * $ e $ * $ \pi $ * $ \frac{\pi}{3} $ * $ e - 1 $ Une solution possible serait : $$ 3 = (e - 1) - e + \frac{\pi}{\frac{\pi}{3}} + 1 $$ Cependant, cette solution est moins optimale (bien que la meilleur dans ce cas) car elle nécessite l'ajout d'un nombre supplémentaire. ## Gestion des Valeurs Répétées Le programme doit aussi prendre en compte les répétitions de valeurs dans la liste. Par exemple, pour obtenir **4** à partir d'une liste contenant 2, 2, 3, 5. Il faut nécessairement mettre les deux deux. La solution $ 4 = 2 + 5 - 3 $ n'est donc pas valide il faudrait donc faire 4ドル = 2 \times 5 - 2 \times 3$. ## Cas Complexes Le programme doit être capable de résoudre des cas plus complexes. Par exemple, pour obtenir **2** avec les valeurs suivantes : * $ \sqrt{3e - 1} $ * $ 1 $ * $ \frac{e}{2} $ Le programme pourrait proposer la solution suivante : $$\frac{\left(\sqrt{3 \times e - 1}\right)^2 + 1}{\frac{e}{2}} = 2$$ ## Mes réflexions Pour le moment, la seule manière de gérer les formules que j'ai trouvée est de traiter élément par élément chaque bout de la formule, par exemple avec $\sqrt 3$ je cherche plusieurs manières de le simplifier avec tous mes nombres, comme diviser par les autres, multiplier. Et je vois quand c'est rationnel avec une profondeur de 2, 3 sur mon arbre de décision. En plus d'avoir la possibilité de l'inverser en faisant sur lui-même fois lui-même ou faire $\circ^n$ pour tous les nombres de la forme $x^n$. Par exemple avec $\sqrt e$ et $e,ドル mon idée ferait : $$(\sqrt e)^2$$ ou $$\frac{\sqrt e}{e}$$ etc. Puis je continuerais la première branche pour trouver : $$ \frac{(\sqrt e)^2}{e} $$ qui est rationnel. Avant de recomposer tous les rationnels par des sommes/produits, avant de finalement tout multiplier par un coefficient permettant de directement trouver le résultat attendu. Le problème de cette méthode, c'est que selon moi, elle offre une formule tout sauf esthétique. ## Conclusion Je cherche donc à développer ou à obtenir un programme qui répond à ces critères et serait capable de générer ces formules automatiquement. Si vous avez des idées, des suggestions d'algorithmes ou de méthodes pour y parvenir, je suis preneur !

AltStyle によって変換されたページ (->オリジナル) /