Estoy trabajando en un problema de tarea que me pregunta esto:Computing número de destino de los números en un conjunto
Tiven un conjunto finito de números, y un número objetivo, encontrar si el conjunto se puede utilizar para calcular el número objetivo usando operaciones matemáticas básicas (agregar, sub, mult, div) y usar cada número en el conjunto exactamente una vez (así que necesito agotar el conjunto). Esto tiene que hacerse con recursión.
Así, por ejemplo, si tengo el conjunto
{1, 2, 3, 4}
y apuntar a 10, entonces podría llegar a ella mediante el uso de
((3 * 4) - 2)/1 = 10.
Estoy intentando frase del algoritmo en seudo -code, pero hasta ahora no han llegado demasiado lejos. Estoy pensando que los gráficos son el camino a seguir, pero definitivamente agradecería ayuda en esto. Gracias.
¿Qué has estudiado hasta ahora? ¿En qué clase/lección obtuviste esta tarea? Lo primero que me viene a la mente son los algoritmos genéticos, pero si aún no lo has estudiado, probablemente haya algo más, como una búsqueda exhaustiva. Además, ¿debe explicar parantheses? ¿O tiene la garantía de poder obtener el número objetivo sin ellos también? Y una cosa más, ¿debe usar cada número dado EXACTAMENTE una vez, o AT MOST una vez? – IVlad
Lo siento, debería haber sido más claro. Al leer nuevamente el problema, establece que cada número debe usarse EXACTAMENTE una vez. Los paréntesis se agregaron por el bien del ejemplo, que ahora cambia a ((3 * 4) -2)/1 = 10 ... gracias por señalar estas cosas. – sa125
Puede olvidarse de la precedencia simplemente usando una notación de prefijo (o postfijo): (/ (- (* 3 4) 2) 1). –