Esto se basa en un juego que uno de mis maestros de matemáticas solía jugar en la escuela secundaria. Escribiría 5 números aleatorios de un dígito en la pizarra, y luego un número aleatorio de dos dígitos. Intentaríamos crear una ecuación que usara los 5 números de un dígito para obtener el número de dos dígitos. Aquí hay algunos ejemplos con soluciones para explicar esto mejor:
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
Este desafío es escribir un programa que pueda generar tales ecuaciones para una entrada dada. La entrada se puede proporcionar a través de la línea de comando o mediante un indicador. Los 5 números de un dígito siempre se ingresarán primero (sin ningún orden en particular), seguidos del número de dos dígitos. El programa imprimirá una ecuación de solución que encuentre; no tiene que manejar situaciones donde no hay solución. La función debe ser capaz de usar las siguientes operaciones en la ecuación: suma, resta, multiplicación y división. Si desea permitir operaciones básicas adicionales, está bien siempre y cuando permanezcan en el espíritu del desafío (la negación, la exponenciación y el módulo serían buenas adiciones). El orden de las operaciones sigue las reglas matemáticas estándar, por lo que se necesitará paréntesis para la agrupación.
Los programas se puntuarán según la longitud del código (incluido el espacio en blanco requerido). Nota: la división debe ser exacta, no redondeada o truncada al entero más cercano.