Ceci est basé sur un jeu que l'un de mes professeurs de mathématiques jouait au collège. Il inscrirait 5 nombres aléatoires à un chiffre sur le tableau, puis un nombre aléatoire à deux chiffres. Nous essayons de créer une équation qui utilise les 5 nombres à un chiffre pour produire le nombre à deux chiffres. Voici quelques exemples avec des solutions pour mieux l'expliquer:
Input: Solution:
7 5 4 8 4 34 5*8-7+4/4 = 34
3 1 5 7 6 54 (7+3)*6-5-1 = 54
3 9 2 1 6 87 9*(2+1)*3+6 = 87
2 1 6 9 7 16 (9-7+6*1)*2 = 16
2 4 5 8 6 96 8*(5+6)+2*4 = 96
3 8 4 5 4 49 8*(4+4)-3*5 = 49
Ce défi consiste à écrire un programme capable de générer de telles équations pour une entrée donnée. L'entrée peut être fournie via la ligne de commande ou via une invite. Les 5 numéros à un chiffre seront toujours entrés en premier (dans aucun ordre particulier), suivis du numéro à deux chiffres. Le programme imprimera alors une équation de solution qu'il trouve; vous n'avez pas à gérer des situations où il n'y a pas de solution. La fonction doit être capable d'utiliser les opérations suivantes dans l'équation: addition, soustraction, multiplication et division. Si vous souhaitez autoriser des opérations de base supplémentaires, c'est bien tant qu'elles restent dans l'esprit du défi (la négation, l'exponentiation et le module seraient de jolis ajouts). L'ordre des opérations suit les règles mathématiques standard, donc des parenthèses seront nécessaires pour le regroupement.
Les programmes seront notés en fonction de la longueur du code (y compris les espaces requis). Remarque: la division doit être exacte, non arrondie ou tronquée à l'entier le plus proche.