Polete hace un "exacto" que Doña Gema y su computadora no lo habían encontrado, a pesar de que las operaciones aritméticas realizadas no son muy complicadas.
#2Pues vaya bírria de programa que tiene esta mujer... tampoco es que sea tan complicado escribir un código que resuelva este tipo de problemas en unos segundos.
Si no recuerdo mal, este problema es NP-duro. Sí, programar un algoritmo genético que funcione bastante bien es sencillo, pero no hay garantía alguna de que halle siempre la solución si la hay. Ninguna.
Pero oye, que si lo encuentras me uno a #3, a por ello que te forras.
#13#10 NP? Cada uno de los números se puede utilizar una única vez y tienes un número finito de operaciones, así que tienes un número finito de formas de 'combinar' estos seis números mediante estas operaciones. Es fácil hacer un código que simplemente calcule todas estas posibilidades y compruebe cual es la más cercana al número buscado.
#15#14 Será porque tengo cosas más interesantes que hacer a lo largo del día que estar en menéame a ver que responden a mis comentarios? :P
(lo de unos segundos me refiero al tiempo que tardaría el programa en hacer los cálculos, no yo en escribir el programa el cual desde luego no ocuparía tres líneas)
#17Y digo yo... ¿es la primera vez que acierta el concursante y no acierta ni la "profesora" ni el ordenador?
O simplemente es que esta vez la "profesora" hace el chascarrillo de tu lo has acertado y nosotros no.
Para cifras, para letras, los códigos en C bajo GPL e interfaz php para probarlos online. Y la explicación de como pensó en resolver el problema. Por cierto hace siglos porque lo programó sobre un 386 8)
#19#18 He probado y el programa de Reina encuentra la solución en menos de 1 segundo, así que #2 tiene razón, se puede hacer un programa mejor que el que usan en el concurso y, de hecho, ya está realizado.
Probad aquí: pedroreina.net/ciflet/anarit.php Da el siguiente resultado:
Números de partida: 6, 9, 8, 4, 6, 7
Número objetivo: 459
#25Es de auténtica coña que lleven no se cuantos años haciendo un programa diario para todas las autonómicas basado unicamente en el uso de un programa (disponible en internet como se ha demostrado). Lo mejor de todo son los aires de grandeza del melenas y de la rubia cuando "encuentran" una solucion mejor que los concursantes.
#30#13 NP = No polinómico != infinito. Claro que hay finitas soluciones, igual que hay finitas soluciones al problema del viajante o finitas factorizaciones en los algoritmos RSA. El problema es cuando el número de operaciones es bestial.
Cuando #2 dijo "este tipo de problemas" esperaba algo con menos restricciones que aquí, donde solo hay 4 operaciones y 14 operandos que no se pueden repetir XD Eso sí, el programa sigue siendo NP y no son problemas fáciles de solucionar en general. Aquí porque te vale con fuerza bruta, pero duplica el número de operandos y verás como las cosas empiezan a ir más lentas...
#41Qué rápidos sois algunos sacando vuestros conocimientos de algoritmia....
Ningún tipo de problema, ni NP-Duro ni polinomial ni nada resulta intratable cuando el tamaño es tan pequeño.
#30, NP es No derterminista, polinómico en tiempo (dado que a día de hoy es imposible asegurar que NP sea distinto de P, y por tanto en caso de ser iguales [algo a todas luces improbable], NP sería otro tipo de "polinómico").
#41, el término adecuado es "polinómico". Polinomial no es correcto.
Todos: al hablar de complejidad algorítmica de un problema no estamos hablando de la complejidad de una instancia concreta. A pesar de todo, un problema en P suele tener un algoritmo de 1, 2 ó 3 bucles anidados, y un problema en NP suele tener asociada una "búsqueda por fuerza bruta" o una enumeración de todas las soluciones.
#56Cuando la experta no obtiene el número exacto, se queda con la aproximación del concursante. En alguna ocasión yo he sacado alguna aproximación mejor, que me hizo ver que el programa que utiliza ella no es perfecto.
#62#57 ,no es por desmerecer, pero lo que ha hecho nanaki es bastante sencillo. Quiero decir, no hace falta dominar C para hacer eso, es un algoritmo sencillote. :)
No quiere decir eso que yo lo hga mejor, o igual de bien, (quizás me saliese más complejo, o más largo, o peor simplemente) Pero eso no quita que sea algo sencillo de hacer.
Si no recuerdo mal, este problema es NP-duro. Sí, programar un algoritmo genético que funcione bastante bien es sencillo, pero no hay garantía alguna de que halle siempre la solución si la hay. Ninguna.
Pero oye, que si lo encuentras me uno a #3, a por ello que te forras.
y yo!
(lo de unos segundos me refiero al tiempo que tardaría el programa en hacer los cálculos, no yo en escribir el programa el cual desde luego no ocuparía tres líneas)
seguro que no ocupa tres líneas, no...
Pues parece que tienes mucho tiempo libre, porque te has dignado:
1) a contestar de nuevo a esta noticia
2) a contestar a mi comentario
Venga, seguro que puedes tú solit@. Te damos tres meses para sacarlo XD XD XD XD XD XD XD
O simplemente es que esta vez la "profesora" hace el chascarrillo de tu lo has acertado y nosotros no.
pedroreina.net/ciflet/
Para cifras, para letras, los códigos en C bajo GPL e interfaz php para probarlos online. Y la explicación de como pensó en resolver el problema. Por cierto hace siglos porque lo programó sobre un 386 8)
Probad aquí: pedroreina.net/ciflet/anarit.php Da el siguiente resultado:
Números de partida: 6, 9, 8, 4, 6, 7
Número objetivo: 459
Complejidad del análisis: 15 / 21
Número obtenido: 459 ¡Exacto!
Operaciones:
9 + 8 = 17
7 * 4 = 28
6 / 6 = 1
28 - 1 = 27
17 * 27 = 459
Este en particular es brutal:
es.youtube.com/watch?v=bEVDpRv-73E
Vaya, pienso como una máquina XD
www.youtube.com/watch?v=lBcwA0TYEVo
Y recuerdo que por aquél entonces ya tenía un programilla en el
Commodore Amiga para hacer las cifras :-D
#23 Bueno, acepto el Owned :D
Cuando #2 dijo "este tipo de problemas" esperaba algo con menos restricciones que aquí, donde solo hay 4 operaciones y 14 operandos que no se pueden repetir XD Eso sí, el programa sigue siendo NP y no son problemas fáciles de solucionar en general. Aquí porque te vale con fuerza bruta, pero duplica el número de operandos y verás como las cosas empiezan a ir más lentas...
es.youtube.com/watch?v=X1jwjiEQG9Y
6*8 = 48
48+3 = 51
51*9= 459
tokland.freehostia.de/projects.html#_simple_math_game_solver
$ python cifras.py 6 9 8 4 6 7 459
459 = ((((8*6)-4)+7)*9)
((6 * 6) + 8 + 7) * 9 = 459
Ningún tipo de problema, ni NP-Duro ni polinomial ni nada resulta intratable cuando el tamaño es tan pequeño.
6+6+7=19
8*4=32
19+32=51
51*9=459
((6 x 8) + 4 + 6 - 7) * 9
#25 todas las autonómicas???? no en las que veo yo en casa.
#30, NP es No derterminista, polinómico en tiempo (dado que a día de hoy es imposible asegurar que NP sea distinto de P, y por tanto en caso de ser iguales [algo a todas luces improbable], NP sería otro tipo de "polinómico").
#41, el término adecuado es "polinómico". Polinomial no es correcto.
Todos: al hablar de complejidad algorítmica de un problema no estamos hablando de la complejidad de una instancia concreta. A pesar de todo, un problema en P suele tener un algoritmo de 1, 2 ó 3 bucles anidados, y un problema en NP suele tener asociada una "búsqueda por fuerza bruta" o una enumeración de todas las soluciones.
que clase de nombre es Polete????? algunos padres no tienen piedad
Joder.
No quiere decir eso que yo lo hga mejor, o igual de bien, (quizás me saliese más complejo, o más largo, o peor simplemente) Pero eso no quita que sea algo sencillo de hacer.