Je sais que ce fil est vraiment vieux, mais comme il est consultable à partir Google. Je suis en train d'écrire un programme de calculatrice TI-83 plus qui aborde des problèmes similaires. Dans mon cas, j'essaie de résoudre réellement l'équation pour une variable spécifique en nombre, mais cela peut toujours être lié à votre problème, bien que j'utilise un tableau, donc il peut être plus facile pour moi de choisir des valeurs spécifiques.
Ce n'est pas tout à fait fait, mais il se débarrasse de la grande majorité des parenthèses avec (je pense), une solution plutôt élégante. Ce que je fais est de balayer à travers l'équation/fonction/quelquechose, en gardant une trace de chaque parenthèse ouvrante "(" jusqu'à ce que je trouve un parenthèse fermant "), à quel point je peux être assuré que je ne rencontrerai pas parenthèses plus profondément imbriquées. Y = ((3x + (2))) montrerait le (2) d'abord, puis le (3x + (2)), puis le ((3x + 2))).
Ce qu'il fait ensuite vérifie les valeurs immédiatement avant et après chaque parenthèse. Dans le cas ci-dessus, il retournera + et). Chacun d'entre eux est affecté d'une valeur numérique. Entre les deux, le plus élevé est utilisé. Si aucun opérateur n'est trouvé (*, /, +,^ou -), la valeur par défaut est 0.
Ensuite, je balaie l'intérieur des parenthèses. J'utilise un système de numérotation similaire, bien que dans ce cas j'utilise la valeur la plus basse trouvée, pas la plus élevée. Je par défaut à une valeur de 5 si rien n'est trouvé, comme ce serait le cas ci-dessus.L'idée est que vous pouvez attribuer un nombre à l'importance des parenthèses en soustrayant les deux valeurs. Si vous avez quelque chose comme un^sur l'extérieur des parenthèses (2 + 3)^5 ces parenthèses sont potentiellement très importantes, et recevraient une valeur élevée, (dans mon programme j'utilise 5 pour ^).
Il est possible cependant que les opérateurs internes rendent les parenthèses très peu importantes, (2)^5 où rien n'est trouvé. Dans ce cas, l'intérieur reçoit une valeur de 5. En soustrayant les deux valeurs, vous pouvez ensuite déterminer si un ensemble de parenthèses est nécessaire ou non en vérifiant si le nombre résultant est supérieur à 0. Dans le cas de (2 +3)^5, a^donnerait une valeur de 5, et a + donnerait une valeur de 1. Le nombre résultant serait 4, ce qui indiquerait que les parenthèses sont en fait nécessaires. Dans le cas de (2)^5 vous auriez une valeur interne de 5 et une valeur externe de 5, résultant dans une valeur finale de 0, montrant que les parenthèses sont sans importance, et peuvent être supprimés. L'inconvénient de ceci est que (au moins sur la TI-83) balayer l'équation tant de fois est ridiculement lent. Mais si la vitesse n'est pas un problème ... Je ne sais pas si cela aidera du tout, je pourrais être complètement hors sujet. J'espère que vous avez tout préparé et travaillé.
Merci Keith. Je testerai. – Pawel