Intentemos algo más sencillo.
El primer paso es hacerse una idea de las cosas. ¿Qué ocurre si sumamos todos los números 1+2+...+7? Obtenemos 28, que es demasiado pequeño. ¿Cómo podemos obtener un número mayor? Si restamos o dividimos, lo haremos más pequeño. Así que tenemos que multiplicar. Lo necesitamos unas 4 veces más grande (3 x 28 = 84, 4 x 28 = 112). Bueno, eso es un poco engañoso porque el 4 no se multiplica a sí mismo, es más bien 4*24. Pero sigamos y probemos con el 4.
Hay dos formas obvias de obtener la multiplicación por 4. La primera es (1+2+3) 4+5+6+7=42 - demasiado pequeño. [La otra es (1+2+3)+4 (5+6+7) = 78. Sigue siendo demasiado pequeño. Así que esto es un poco más complicado de lo que parece.
Si pasamos a 5*(6+7) será demasiado grande.
Pausa. 6*7=42. Y (3*4*5)=60. Así que eso nos acercaría. A 102 de hecho. ¿Podríamos obtener el -2 del 1,2,3? Eso te lo dejo a ti.
Pero puedes seguir quejándote de que he sacado 6*7 y 3*4*5 de la nada. Bueno, no del todo. Mi proceso de pensamiento fue el siguiente:
Necesito algo más grande. 6*7=42. Oh, pero entonces 3*4*5=60.
No parece una progresión especialmente lógica. No es lógica, pero es natural. 6,7 simplemente grita 42. Eso está grabado en mi cerebro. 3,4,5 ciertamente susurra 60, tal vez incluso lo habla.
Para mí hay dos lecciones de esto. (1) hay que aprender las cosas de memoria. No es posible progresar hasta que tu cerebro esté repleto de datos útiles. Tienen que estar en tu cerebro. Porque necesitas una recuperación muy rápida. Si tienes que andar calculando 6*7=42, es mucho más difícil. (2) Necesitas jugar de forma organizada. Los mejores libros sobre este tema son, con diferencia, los antiguos de Polya. Un niño de 8 años probablemente podría arreglárselas con su libro corto.
0 votos
¿Podría utilizar otros números también o sólo esos números?
0 votos
Digamos que sólo esos números.
0 votos
Para escribir un programa de este tipo, basta con hacer todas las cadenas legales y evaluarlas hasta encontrar la respuesta correcta. Como dice Did, sólo hay que buscar. Tampoco conozco ninguna técnica general.
0 votos
Una solución más sencilla si necesitas una expresión sin paréntesis y usando las 4 operaciones,(multiplicar,dividir,restar,sumar) podrías usar esto: 10x4-60÷2+90 Evaluando esta expresión sería igual a 100 exactamente.
0 votos
Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación podrá comentar cualquier entrada en su lugar, proporcionar respuestas que no requieran una aclaración por parte del preguntante . - De la revisión