Permítanme comenzar con un ejemplo - Tengo un rango de números del 1 al 9. Y digamos que el número objetivo que quiero es 29 En este caso, el número mínimo de operaciones requeridas sería (9 * 3) +2 = 2 operaciones. De manera similar para 18, el número mínimo de operaciones es 1 (9 * 2 = 18). Puedo usar cualquiera de los 4 operadores aritméticos - +, -,/y *.Encontrar el número mínimo de operaciones requeridas para calcular un número usando un rango de números especificado
¿Cómo puedo averiguar programáticamente el número mínimo de operaciones requeridas? Gracias de antemano por cualquier ayuda brindada.
aclaración: enteros solamente, no se permiten decimales a mitad del cálculo. es decir, lo siguiente no es válido (a partir de los comentarios a continuación): ((9/2) + 1) * 4 == 22 Debo admitir que no pensé en esto a fondo, pero para mi propósito no lo hace importa si los números decimales aparecen a mitad del cálculo. ((9/2) + 1) * 4 == 22 es válido. Perdón por la confusion.
4 * 7 = 28. ..... – kennytm
existe una solución de retroceso trivial, pero es exponencial. ¿Tiene restricción de complejidad de tiempo? – amit
@KennyTM - tnx. Debería haber usado un mejor ejemplo. – Bookamp