Foros del Web » Programación para mayores de 30 ;) » Programación General »

Fuerza bruta lógica, ejemplos.

Estas en el tema de Fuerza bruta lógica, ejemplos. en el foro de Programación General en Foros del Web. Uno: https://es.wikipedia.org/wiki/B%C3%B...ta_l.C3.B3gica Quiero saber más o menos cuánto puede mejorarse la fuerza bruta, en distintos casos (o sea, aunque la variación sirva para sólo 1 ...
  #1 (permalink)  
Antiguo 07/09/2015, 13:57
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Fuerza bruta lógica, ejemplos.

Uno:
https://es.wikipedia.org/wiki/B%C3%B...ta_l.C3.B3gica

Quiero saber más o menos cuánto puede mejorarse la fuerza bruta, en distintos casos (o sea, aunque la variación sirva para sólo 1 caso, quiero saberla). En principio me interesa hallar una (*) solución real, el coste es secundario.

(*): Sí, una, no todas las posibles. Cuando la halla, fin del programa.

Vi también el tema del diccionario en el caso de ataque por fuerza bruta.

Gracias.
  #2 (permalink)  
Antiguo 07/09/2015, 14:24
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Fuerza bruta lógica, ejemplos.

No se entiende lo que estas preguntando.

A qué te referís con mejorar? mejorar en qué sentido? qué algoritmo? la lógica de fuerza bruta es algo muy general y conceptual, no es una implementación concreta.

Por cierto, tengo pendiente contestarte el otro post, pero todavia no tuve tiempo.
  #3 (permalink)  
Antiguo 07/09/2015, 14:56
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Este tema es muy amplio.

La fuerza bruta ciega es probar cada posible candidato hasta que uno logre la solución buscada.

La fuerza bruta lógica es lo mismo pero descartando candidatos que es "demasiado obvio" -dice la wiki- que no son la solución, o que no tiene sentido probar porque la solución se puede hallar en otras alternativas (fijate lo que dice la wiki de los números, si buscás un divisor (no el nro1) para un número se puede descartar los enteros que terminan en 4, porque bastaría con analizar los que terminen en 2, en definitiva no tiene sentido probar los que terminan en 4, 6 y 8.
"no es absolutamente necesario revisar el 4,6,8,10,12,14,15,16 si ya hemos mirado el 2,3,5,7..."
También, en la fuerza bruta lógica, es altamente probable en ciertos casos empezar la búsqueda por algo específico, eso se dice en el ataque con diccionario y supondría una mejora de la fuerza bruta.
  #4 (permalink)  
Antiguo 07/09/2015, 15:35
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Fuerza bruta lógica, ejemplos.

si..... y????

cuál es tu pregunta / duda / consulta ?

Sigo sin entender qué estas preguntando....

Ahora te hago una pregunta yo: ¿para qué querés eso? todavía no aprendiste a sumar 0.1 y que te de un resultado correcto....
  #5 (permalink)  
Antiguo 07/09/2015, 15:36
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Fuerza bruta lógica, ejemplos.

En la página a la que refieres ya tienes un ejemplo muy claro sobre cualquier divisor de un número dado. Es decir, si te doy el 119 encuéntrame 1 divisor.

Mientras que a la fuerza bruta ciega o fuerza bruta dice que dividas por todos los números a partir de 2 hasta el 117, la fuerza bruta lógica dice que... si el número proporcionado es un número primo solo será divisible entre 1 y él mismo. Pero que si no es así, será divisible por otro número primo a la fuerza. Así pues, en vez de dividir por todos los números de 2 en adelante como haría la fuerza bruta (2,3,4,5,6,7,8... etc) dividirás únicamente entre los primos (2,3,5,7,11,13...etc) De esa manera recorrerás todas las posibles soluciones hasta dar con una válida de manera más rápida.

Otro ejemplo:

Una máquina tragaperras tiene como símbolos en cada 1 de sus 3 casilleros:

7
Cereza
Piña
Fresa
Limón
Sandía
Naranja
B-A-R

Sabiendo que se dispone de 2 avances, encuentra una combinación en la que se puedan usar (o no) los avances para tener una combinación ganadora. Teniendo en cuenta que el símbolo del 1º casillero será dado al azar.

Nota: Las combinaciones ganadoras son aquellas en las que los 3 casilleros tienen el mismo símbolo.

Mientras que la fuerza bruta para encontrar la combinación ganadora dado por ejemplo que el símbolo del 1º casillero es Fresa dice que se pruebe Fresa - 7 - 7; Fresa - 7 - Cereza; Fresa - 7 - Piña (El Simbolo dado, con el 1º del 2º casillero, con cada 1 de los del 3º, para luego usar el símbolo dado, junto con el siguiente del 2º casillero, junto con cada 1 de los del 3º)

La fuerza bruta lógica dice que, si el 1º símbolo es la Fresa, los 2 anteriores son Piña y Cereza. Así pues... hará una lista con todas las combinaciones entre Fresa y (Fresa, Piña, Cereza) y (Fresa, Piña, Cereza) e irá probando a usar avances en el 2º casillero hasta máximo de 2, o hasta llegar a Fresa. Y después en el 3º hasta consumir los 2 avances o tener Fresa. Si después tiene 3 fresas esa convinación inicial tiene premio. Si no, no.

Otro ejemplo:

La masa de un roscón de reyes es uniforme cada 10 centímetros de roscón. Si en unos sitios es más delgado en otros es más grueso para compensar y que la masa siga siendo uniforme cada 10 centímetros, sea desde donde sea que se mida y hacia el lado que se mida. Siempre se cumple eso.

Por otro lado se dice que hay un regalo escondido en el roscón, y también hay un aba (el regalo malo) escondido en el roscón. Lo único que se sabe del regalo bueno es que más grande que el aba.

Averigua donde está escondido el regalo bueno.

Mientras que la fuerza bruta escoge un lugar al azar del roscón, hace un corte y luego va haciendo cortes en una dirección cada centímetro, haciendo cortes de 1 centímetro, La fuerza bruta lógica selecciona del roscón la parte más gruesa, y hace ahí un corte. Si ha fallado irá a buscar la 2º parte más gruesa del roscón, y hará ahí otro corte. Y luego a la 3ª parte más gruesa. etc.

Aunque el regalo esté en la parte más delgada del roscón... el algoritmo también pasará por esa zona, al final pero pasará. Sin embargo es más lógico pensar que, normalmente, se acertará con más probabilidad probando 1º en las partes más anchas.

----------

Como ves, optimizar el algoritmo de la fuerza bruta y convertirlo en uno de fuerza bruta lógica necesita de algo llamado imaginación para dar una posible solución (puede haber muchas) a un problema. El problema a resolver no es el propio problema, sino qué mecanismo se va a escoger para la resolución del problema.

Si quieres estudiar sobre mecanismos de resolución de problemas, échale un vistazo a la teoría del Método Científico. Ahí se detalla más sobre mecanismos de resolución de problemas.

Última edición por Kritik; 07/09/2015 a las 15:47
  #6 (permalink)  
Antiguo 07/09/2015, 17:47
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

agleiva:
Quiero ejemplos de cómo pasar de fuerza bruta ciega a fuerza bruta lógica, lee a Kritik que lo entendió.

Cita:
Ahora te hago una pregunta yo: ¿para qué querés eso? todavía no aprendiste a sumar 0.1 y que te de un resultado correcto....
Alguien insistió amablemente en que me informara sobre eso, o me dió a entender que lo que yo hacía (él lo llamó fuerza bruta) era muy básico y que podía mejorarse, entonces decidí investigar cómo.
"Hey, Superman, cómo podés pensar en acercarte al Sol si ni siquiera te podés acercar a un pedacito de criptonita..."

Cita:
Iniciado por Kritik Ver Mensaje
En la página a la que refieres ya tienes un ejemplo muy claro sobre cualquier divisor de un número dado. Es decir, si te doy el 119 encuéntrame 1 divisor.

Mientras que a la fuerza bruta ciega o fuerza bruta dice que dividas por todos los números a partir de 2 hasta el 117, la fuerza bruta lógica dice que... si el número proporcionado es un número primo solo será divisible entre 1 y él mismo. Pero que si no es así, será divisible por otro número primo a la fuerza. Así pues, en vez de dividir por todos los números de 2 en adelante como haría la fuerza bruta (2,3,4,5,6,7,8... etc) dividirás únicamente entre los primos (2,3,5,7,11,13...etc) De esa manera recorrerás todas las posibles soluciones hasta dar con una válida de manera más rápida.
Sí, había entendido otra cosa pero en términos generales lo mismo: Es un ejemplo de cómo optimizar la búsqueda.


Tu 2ndo ejemplo no lo entendí del todo pero me resulta inspirador, lo cual valoro mucho, es un tipo de problema no tan complicado o sea del tipo que necesito por ahora. Es otro tema, pero supongo lo entiendes.

El 3ero también me gustó, inspiró y hasta lo entendí bien. Me hace pensar en una variación del buscaminas o algo (buscaoro) en lo que haya que revisar zonas que tengan a su vez subzonas incluídas en otras zonas. Una fuerza bruta ciega investigaría cada zona, pero una lógica tendría en cuenta las subzonas ya vistas por lo que no investigaría ciertas zonas. Sé que no está muy claro, ni yo lo tengo así, pero bueno, el punto es que me has hecho idear algo aunque al final no se pueda o lo que sea, me gustaría igual porque me gusta tener ideas.

Cita:
Como ves, optimizar el algoritmo de la fuerza bruta y convertirlo en uno de fuerza bruta lógica necesita de algo llamado imaginación
Sí pero lógica también xD

Cita:
Si quieres estudiar sobre mecanismos de resolución de problemas, échale un vistazo a la teoría del Método Científico. Ahí se detalla más sobre mecanismos de resolución de problemas.
De hecho me recomendaron esto
https://en.wikipedia.org/wiki/Design_of_experiments
que es parecido. Tengo mucho que leer xP -otros links too- pero agrego lo que dices.
  #7 (permalink)  
Antiguo 07/09/2015, 18:08
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Alguien insistió amablemente en que me informara sobre eso, o me dió a entender que lo que yo hacía (él lo llamó fuerza bruta) era muy básico y que podía mejorarse, entonces decidí investigar cómo.
Es lo mismo que te dije yo, te acordás? te dije que tu código es tan trivial que lo hago con 5 instrucciones de C# y lo hago configurable por afuera con un archivito XML.

Ese programita que hiciste que te pide un par de parámetros y después va sumando 1 hasta llegar a cierto resultado. Eso es exactamente fuerza bruta. ¿Cómo mejorarlo? no tengo idea porque nunca pudiste dar una explicación CLARA de a dónde querés llegar.

Cita:
Iniciado por Tachikomaia Ver Mensaje
"Hey, Superman, cómo podés pensar en acercarte al Sol si ni siquiera te podés acercar a un pedacito de criptonita..."
Claro, la diferencia es que Superman tiene superpoderes ilimitados, y vos tenes ActionScript... me explico? más que superman tratando de llegar a sol, una metáfora más adecuada sería que estás tratando de ganar el Tour de Francia con una bici playera....
  #8 (permalink)  
Antiguo 07/09/2015, 20:03
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por agleiva Ver Mensaje
Es lo mismo que te dije yo, te acordás? te dije que tu código es tan trivial que lo hago con 5 instrucciones de C# y lo hago configurable por afuera con un archivito XML.
Lo mismo no, si hubieses dicho que era fuerza bruta y que había algoritmos mejores y blablabla como me dijo otro quizá hubiese investigado fuerza bruta y esos algoritmos.

Cita:
Ese programita que hiciste que te pide un par de parámetros y después va sumando 1 hasta llegar a cierto resultado. Eso es exactamente fuerza bruta. ¿Cómo mejorarlo? no tengo idea porque nunca pudiste dar una explicación CLARA de a dónde querés llegar.
Puede ser que no la haya dado, pero el tema ahora no es ese programa.
Además ¿cuando profundicé sobre qué hacía mi programa? No lo recuerdo, hablamos de unir funciones, de hacer que aparezca una tabla más o menos estilo excel en la pantalla, cómo el usuario puede describir condiciones... en fin, no recuerdo haber hablado profundamente contigo sobre qué hace mi programa, ni recuerdo haber planteado un tema recientemente (en meses) sobre cómo mejorar el sistema que usa -sí cómo mejorar/hacer cuestiones gráficas y de lo que dije, pero no el método conque mi programa busca soluciones-.
La respuesta que me dieron no era en un tema sobre mi programa además, era sobre cómo hacer una investigación de forma óptima en un videojuego -sin mi programa ni algo extraño-, pero quien respondió se enfocó bastante en el tema de programación y "por casualidad" mi programa usa un método de investigación similar al que yo estaba diciendo de hacer en ese videojuego, entonces resultó útil para mi programa aunque como dices es algo bastante lejano, no pensaba ni pienso profundizar o aplicar esto ahora, pero sí se me despertó la curiosidad suficiente como para preguntar.
O sea, difícilmente hayas visto una explicación profunda y clara sobre el método de investigación o búsqueda de la solución porque recientemente no la he dado.

Cita:
Claro, la diferencia es que Superman tiene superpoderes ilimitados, y vos tenes ActionScript... me explico? más que superman tratando de llegar a sol, una metáfora más adecuada sería que estás tratando de ganar el Tour de Francia con una bici playera....
Sabes que no voy a cambiar de herramienta. Mi intención con el ejemplo no era decirte que soy superman o que Flash es ilimitado, lo que quise decir es que la existencia de algunos obstáculos no es concluyente de que algo no sirve.
  #9 (permalink)  
Antiguo 07/09/2015, 20:41
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Lo mismo no, si hubieses dicho que era fuerza bruta y que había algoritmos mejores y blablabla como me dijo otro quizá hubiese investigado fuerza bruta y esos algoritmos.
Y cómo te voy a sugerir algo mejor si no tengo ni la menor idea de qué estás queriendo hacer? Ya te lo dije más de una vez, vos sólo te entendés, cuando hables como un programador sobre cuestiones de programación va a ser mucho más fácil que el resto de los programadores te entendamos.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Además ¿cuando profundicé sobre qué hacía mi programa?
Posteaste el SWF yo lo levanté con una virtual para ver qué hacía, porque me dió curiosidad. De nuevo te repito: eso que te llevó quién sabe cuántos años hacer en .Net lo hacés en media hora.

Cita:
Iniciado por Tachikomaia Ver Mensaje
hablamos de unir funciones
Y yo te dije que tus funciones no sirven de nada porque no hacen nada. Te rompés la cabeza escribiendo código que no hace nada... No te entiendo sinceramente.

Cita:
Iniciado por Tachikomaia Ver Mensaje
de hacer que aparezca una tabla más o menos estilo excel
Y yo te mostré como con 1 línea de XAML se puede lograr eso en WPF...

Cita:
Iniciado por Tachikomaia Ver Mensaje
cómo el usuario puede describir condiciones...
Eso te lo estaba por mostrar pero te hiciste el ofendido... Si querés podemos retomar el tema, total eso me toma 10 minutos.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Sabes que no voy a cambiar de herramienta.
Jajaj. Lo decís como si fuera un problema mío. Yo estoy usando Visual Studio 2015, C# 6.0, F# 4.0, .Net Framework 4.5.2, WPF y ASP.Net MVC 5, corriendo sobre Windows 10. La programación me da de comer a mí y a mi familia, gano relativamente bien, disfruto de mi trabajo y hago cosas bastante interesantes (si querés te muestro por PM).

Fijate vos lo que hacés, a mí me tiene totalmente sin cuidado, el que se perjudica sos vos, no yo. Yo uso herramientas profesionales que me permiten realizar los proyectos en menor tiempo y sin limitaciones estúpidas como no poder sumar 0.1 o hacer una grilla en la pantalla.
Todos lo que te decimos que uses herramientas como la gente te lo decimos por tu propio bien y de forma desinteresada.

Por cierto.. sabías que ActionScript está basado en javascript? por que no probás javascript? no necesitás instalar nada mirá: http://jsfiddle.net/. Con eso podés crear una aplicación Web (realmente Web, no esa basura de flash) usando HTML, CSS, javascript, jQuery y muchas otras herramientas que se usan en el desarrollo web profesional. Y no necesitás instalar nada. Podés crear cualquier grilla o cualquier cosa usando HTML o componentes como jQuery UI, y no tenés la limitación de usar una plataforma subnormal como flash.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Mi intención con el ejemplo no era decirte que soy superman o que Flash es ilimitado, lo que quise decir es que la existencia de algunos obstáculos no es concluyente de que algo no sirve.
El tema es así:

¿Se puede recorrer los 3500 km del Tour de Francia con una bici playera, sin entrenamiento y con 30 kilos de sobrepeso? - Probablemente sí, pero si a un ciclista profesional con el peso adecuado, años de entrenamiento y miles de dolares en equipamiento le lleva 23 días completar el Tour, a vos te va a llevar 2 años y medio, porque vas a tener que parar a descansar cada 3 km.

Esto es lo mismo: los 3500 km son la AI que decís que querés crear (o cualquier proyecto de software grande para el caso), el ciclista profesional es un desarrollador profesional, los años de entrenamiento son años de estudio y experiencia laboral en desarrollo de software, el equipamiento son las herramientas que uses (IDEs, lenguajes, frameworks, plataformas, arquitecturas, etc), el sobrepeso son las nociones incorrectas y la obstinación y la falta de apertura mental que venís cargando, y ActionScript es una bicicleta playera, con una rueda pinchada, el manubrio torcido y sin frenos.

¿Qué pensás que me dirían a mí los ciclistas profesionales del Tour de Francia si me aparezco con mi panza grasienta de programador, una bici toda podrida y sin haber entrenado nunca, a tratar de hacer los 3500 km?... Que soy un ridículo, verdad? Debería molestarme u ofenderme que me digan que entrene, que me consiga una bicicleta como la gente, y que baje de peso?

Última edición por agleiva; 07/09/2015 a las 21:05
  #10 (permalink)  
Antiguo 07/09/2015, 22:34
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por agleiva Ver Mensaje
Y cómo te voy a sugerir algo mejor si no tengo ni la menor idea de qué estás queriendo hacer?
Mientras no insultes, todo bien. Si no tenés ni la menor idea de lo que quiero hacer, preguntá, y si te parece que no respondo bien o lo que sea, busca otro tema. El asunto es que dijiste que dijiste lo mismo pero no fue lo mismo.

Cita:
Ya te lo dije más de una vez, vos sólo te entendés, cuando hables como un programador sobre cuestiones de programación va a ser mucho más fácil que el resto de los programadores te entendamos.
Puede ser, pero va a ser difícil que cambie. Tampoco es que hable en chino.

Cita:
Posteaste el SWF yo lo levanté con una virtual para ver qué hacía, porque me dió curiosidad. De nuevo te repito: eso que te llevó quién sabe cuántos años hacer en .Net lo hacés en media hora.
Sólo si tengo claro lo que quiero hacer, porque si lo estoy puliendo tardaría años sí, además de lo que tardaría en aprender .Net y hacer que funcione en mi compu... Sí, tengo mi compu mal, entonces... No, no tengo dinero para arreglarla, y de hecho no quiero arreglarla en ese sentido. Si tuviese una compu y un cd de windows para experimentar quizá experimentaría, o algún conocido, no sé, pero igual no me interesa tanto. Mira, yo no estoy atacando .Net ni nada, simplemente digo que quiero usar Flash porque me siento cómodo usándolo, tiene sus porquerías sí pero no me importa. Discusión inútil.

Cita:
Y yo te dije que tus funciones no sirven de nada porque no hacen nada. Te rompés la cabeza escribiendo código que no hace nada... No te entiendo sinceramente.
Sinceramente, no sé qué decirte. Crees que no sirven o que hacen nada, yo no pienso eso, y bueno, mala suerte, no sé xD Yo lo que te decía es que hablé contigo de eso, si no le encuentras utilidad a esas funciones no es mi problema ¿se supone que debo decir que no la tienen? Para mí la tienen ¿debemos discutirlo? No le veo sentido, y no era mi intención.

Cita:
Y yo te mostré como con 1 línea de XAML se puede lograr eso en WPF...
No me acuerdo, pero no lo niego, igual ya sabes lo que pienso al respecto.

No sé bien qué estás haciendo. No necesitas justificarte, hiciste lo que pudiste, otro por casualidad dió o parece haber dado más en el clavo, pero es normal que otros den en el clavo más que nosotros a veces. Además yo no te pedí información sobre cómo investigar, es normal que no me la dieras.


Cita:
Eso te lo estaba por mostrar pero te hiciste el ofendido... Si querés podemos retomar el tema, total eso me toma 10 minutos.
Las cosas no suceden porque sí. Tal vez reabra la cuestión en algún tiempo, no ahora.

Cita:
Jajaj. Lo decís como si fuera un problema mío.
Por supuesto, porque parece que no lo entendieras.

Cita:
Yo estoy usando Visual Studio 2015, C# 6.0, F# 4.0, .Net Framework 4.5.2, WPF y ASP.Net MVC 5, corriendo sobre Windows 10. La programación me da de comer a mí y a mi familia, gano relativamente bien, disfruto de mi trabajo y hago cosas bastante interesantes (si querés te muestro por PM).

Fijate vos lo que hacés, a mí me tiene totalmente sin cuidado, el que se perjudica sos vos, no yo. Yo uso herramientas profesionales que me permiten realizar los proyectos en menor tiempo y sin limitaciones estúpidas como no poder sumar 0.1 o hacer una grilla en la pantalla.

Todos lo que te decimos que uses herramientas como la gente te lo decimos por tu propio bien y de forma desinteresada.
Digamos que soy un músico que quiere tocar el estilo que le gusta o los instrumentos que le gustan, no me importa si no tengo éxito rápido o si incluso no tengo éxito, en tal caso estaría feliz de haber comprobado por mí mismo que estaba equivocado. No voy a cambiar de camino por lo que dices, es como que mi cerebro no está hecho para cambiar de herramienta, simple. Me resulta complicado el tema de la instalación, de aprender otras formas de expresar cosas que tengo aprendidas de otra forma, de hacer un timer o algo que simule frames, de aprender lo que son las librerías, los frameworks, los engine, no sé, son un montón de cosas que hasta ahora no he necesitado, me parece que sería como cargar peso extra en la mochila, por ahora es verdad que he tenido muchos obstáculos pero he salido adelante, así que... Quien sabe, tal vez si hubiera aprendido todas esas cosas hubiera tenido otros problemas o hubiera sido muy problemático aprenderlas. Yo me siento bien. Lo que me hace sentir mal es tener discusiones absurdas en foros, por ejemplo.

Cita:
Por cierto.. sabías que ActionScript está basado en javascript?
Algo he leído.

Cita:
por que no probás javascript?
Hice un curso online y me aburrí de escribir ifs y de no entender lo que estaba haciendo, es decir, la temática no me interesaba. No me gusta, hay bastantes cosas diferentes, tengo que cambiar todo, me molesta, no soy un Ditto ¿ok?
Y: ¿Puedo insertar botones simplemente con un par de clics? ¿puedo ver cómo se va a ver el programa mientras lo edito? Porque en la práctica que te digo, era todo texto.

Cita:
¿Se puede recorrer los 3500 km del Tour de Francia con una bici playera, sin entrenamiento y con 30 kilos de sobrepeso? - Probablemente sí, pero si a un ciclista profesional con el peso adecuado, años de entrenamiento y miles de dolares en equipamiento le lleva 23 días completar el Tour, a vos te va a llevar 2 años y medio, porque vas a tener que parar a descansar cada 3 km.

Esto es lo mismo: los 3500 km son la AI que decís que querés crear (o cualquier proyecto de software grande para el caso), el ciclista profesional es un desarrollador profesional, los años de entrenamiento son años de estudio y experiencia laboral en desarrollo de software, el equipamiento son las herramientas que uses (IDEs, lenguajes, frameworks, plataformas, arquitecturas, etc), el sobrepeso son las nociones incorrectas y la obstinación y la falta de apertura mental que venís cargando, y ActionScript es una bicicleta playera, con una rueda pinchada, el manubrio torcido y sin frenos.
Ya ni siquiera lo leo, perdón, es la 1era vez que hago algo así, pero estoy harto. Tú crees que Flash es una piedra en el zapato, o que en definitiva es peor que otras cosas. Yo me siento más cómodo con Flash. Tú usarás lo que quieras. Yo Flash. Ya te lo dije en el otro tema, ya déjalo.

Además, digamos que tengo un libro de 3000 páginas escrito en chino o un idioma poco querido, como AS. ¿Quieres que lo reescriba en un lenguaje que aún no aprendí? Yo no creo que eso sea práctico. Y aunque el lenguaje o plataforma que me recomiendes sea tan genial como dices, no me interesa, me siento cómodo así.

Cita:
¿Qué pensás que me dirían a mí los ciclistas profesionales del Tour de Francia si me aparezco con mi panza grasienta de programador, una bici toda podrida y sin haber entrenado nunca, a tratar de hacer los 3500 km?... Que soy un ridículo, verdad? Debería molestarme u ofenderme que me digan que entrene, que me consiga una bicicleta como la gente, y que baje de peso?
Depende de lo que les digas tú. Comprendo que puedan reirse pero si por ejemplo pides un repuesto que ya no se hace deberían decirte que ya no se hace, no hay necesidad de decirte que tu bici es un cacharro ni nada por el estilo. Lo de que entrenes no te lo tienen por qué decir, salvo que casi siempre te caigas en la pista y hagas caer a los demás. Si son profesionales deberían concentrarse en ganar la carrera no en tener mejores rivales. Si son profesionales de la programación deberían responder las preguntas, posiblemente recomendar un lenguaje, y recomendar evitar otro, pero deben considerar la comodidad de quien lo usa, si se siente cómodo con lo que usa ya está. Yo no busco ser profesional ni éxito rápido -o al menos, no creo que lo halle aprendiendo todo lo que me parece una tortura-.

Última edición por Tachikomaia; 07/09/2015 a las 22:40
  #11 (permalink)  
Antiguo 07/09/2015, 23:31
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Mientras no insultes, todo bien.
Mostrame exactamente dónde te insulté? en los threads que venimos hablando?

O será que tenés un sentido de identidad con la herramienta que usas, y te sentís insultado cuando te señalan las deficiencias de la misma?

A mí me pasa, viene cualquiera de estos payasos que usan java a decir que java es "mejor" que .Net y me da ganas de reventarle la cabeza con un fierro. La diferencia es que yo hago software y no me quedo atascado en trivialidades, con lo cuál tengo bastante más argumentos para defender lo que defiendo...

Cita:
Iniciado por Tachikomaia Ver Mensaje
además de lo que tardaría en aprender .Net
Claro, la diferencia es que aprender .Net / java / javascript / etc **SIRVE** para algo, por ejemplo para conseguirte un trabajo donde te paguen bien y puedas comprarte una máquina decente, además de otras cosas, o incluso como yo, hacer proyectos por tu cuenta y vivir de venderle software a pequeñas y medianas empresas.

Cita:
Iniciado por Tachikomaia Ver Mensaje
no tengo dinero para arreglarla
Ganarías dinero si supieras programar en algún lenguaje útil.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Si tuviese una compu y un cd de windows para experimentar quizá experimentaría
Si querés te armo una virtual con Windows 7 y Visual Studio y te doy acceso por remote desktop. No me cuesta nada, tengo algo de infraestructura y buen ancho de banda de internet para hacerlo.

(Mirá lo que te estoy ofreciendo... ¿y qué gano yo con eso? nada, te estoy ofreciendo UNA COMPU desinteresadamente, para ayudarte porque decís que no tenés plata para una compu nueva.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Digamos que soy un músico que quiere tocar el estilo
No se trata de estilos.... en cualquier caso podríamos decir que los "estilos" son Procedural, OOP, Funcional, etc.

Vos lo que planteás es equivalente a querer grabar un disco con Luis Miguel usando una guitarra desafinada y rota... no es una cuestión de "estilos" si no una cuestión de que si querés "jugar en las grandes ligas" (AI) tenés que tener preparación, equipamiento, y estar capacitado. Si no dedicate a tocar en la plaza...

Cita:
Iniciado por Tachikomaia Ver Mensaje
aprender lo que son las librerías, los frameworks, los engine, no sé, son un montón de cosas que hasta ahora no he necesitado
Por supuesto que nunca necesitaste nada porque NUNCA PROGRAMASTE NADA(*), pero cada vez que intentás programar algo te topas con un problema que se soluciona con una de estas herramientas que te negás a usar, y que dicho sea de paso no las inventé yo... son años y años de avance en Sistemas, que vos descartás sin ninguna razón. Con ese criterio no deberías usar un auto ni tomarte un colectivo porque "son muchos engranajes, tornillos, el motor, no sé, son un montón de cosas que hasta ahora no he necesitado". Entendés la falacia de tu argumento?

(*) Mostrame lo que hiciste hasta ahora todos estos años que usas flash... y yo te muestro algunas de las cosas que hice desde que empecé con QBasic, luego Visual Basic, luego VB.Net, luego C#, luego F#... y ahí podemos discutir si las librerías, frameworks, y técnicas de programación son "necesarias" o no.

Cita:
Iniciado por Tachikomaia Ver Mensaje
me parece que sería como cargar peso extra en la mochila
No, al contrario. El conocimiento te da libertad, no te da "peso extra". Manejar las herramientas adecuadas te permite hacer el trabajo mas rápido, con menos esfuerzo, y obtener un mejor resultado (volvemos al ejemplo de la cuchara de café). El "peso extra" te lo pones vos mismo usando herramientas inferiores que tienen problemas hasta para las cosas más básicas (como sumar 0.1) y te obligan a perder tiempo buscando soluciones para problemas triviales e irrelevantes en lugar de concentrarte en lo que realmente querés desarrollar.

Cita:
Iniciado por Tachikomaia Ver Mensaje
por ahora es verdad que he tenido muchos obstáculos pero he salido adelante
Salido adelante en qué? Donde? que software escribiste? mostrame un repositorio en GitHub con todo tu software... yo si querés te paso el mío (por PM)

Cita:
Iniciado por Tachikomaia Ver Mensaje
¿Puedo insertar botones simplemente con un par de clics? ¿puedo ver cómo se va a ver el programa mientras lo edito?
Por supuesto que sí. Buscate un editor WYSIWYG si querés, y si no fijate este flaco https://www.youtube.com/watch?v=cqMfPS8jPys, tiene una banda de tutoriales "desde cero"

Cita:
Iniciado por Tachikomaia Ver Mensaje
Tú crees que Flash es una piedra en el zapato
No, yo no "creo" nada, yo digo las cosas con fundamentos técnicos, y no basándome en opiniones o gustos personales o "creencias" (*). Flash es técnicamente INFERIOR a las tecnologías que te nombro regularmente. Y no lo digo yo, lo dice el mundo entero, ya que flash es una tecnología obsoleta y NADIE la está usando actualmente (más que para mantener aplicaciones existentes), de hecho el mundo está tratando de DESHACERSE de flash porque es poco portable, inmantenible, y no cumple ninguna función valiosa que no pueda ser reemplazada por HTML 5.

(*) las creencias las dejo para mi vida personal, las cuestiones técnicas se resuelven con mentalidad técnica.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Además, digamos que tengo un libro de 3000 páginas escrito en chino o un idioma poco querido, como AS.
Tu planteo tiene 2 problemas:

1 - que no tenés ningún libro de 3000 páginas, o al menos nunca lo mostraste, en cualquier caso lo único que mostraste hasta ahora son un par de pantallas que como bien te dije las podés hacer en 15 minutos en cualquier tecnología decente. Si tuvieras armado un sistema grande, o una aplicación como FaceBook, te diría que tenés un libro de 3000 páginas y es más discutible si hay que reescribirlo o no.

2 - Las 3000 páginas que decís que tenés (que no son tales) son totalmente irrelevantes cuando te das cuenta que si hubieras usado otro lenguaje hubieran sido 2 carillas y te hubieran llevado 15 minutos. Con lo cuál todas tus 3000 páginas no tienen absolutamente ningún valor desde un punto de vista objetivo.

Cita:
Iniciado por Tachikomaia Ver Mensaje
no creo que lo halle aprendiendo todo lo que me parece una tortura-.
"tortura" debe ser usar una plataforma que no sirve ni para sumar números... no te parece?

Última edición por agleiva; 08/09/2015 a las 00:01
  #12 (permalink)  
Antiguo 08/09/2015, 00:41
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Quizá debí borrar el mensaje, pero no quería, y enviarte un pm no se me ocurrió, así que lamento que hayas perdido tu tiempo respondiendo porque no te voy a leer. Es más, quisiera que no respondas más mis temas, probablemente para ti también sea lo mejor que ni siquiera los veas. No te guardo rencor ni nada, pero no me sirve leer tus insultos/burlas a mis herramientas o a mí y tú parece que no puedes hablar en mis temas sin desviarte hacia eso, así que... suerte, no esperes que te lea.
  #13 (permalink)  
Antiguo 08/09/2015, 12:31
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Hay algún libro de las posibles optimizaciones que se le pueden hacer a la fuerza bruta ciega, o algo así?
  #14 (permalink)  
Antiguo 08/09/2015, 13:53
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 2 meses
Puntos: 606
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Hay algún libro de las posibles optimizaciones que se le pueden hacer a la fuerza bruta ciega, o algo así?
No porque depende directamente del problema que quieras resolver.
__________________
Aviso: No se resuelven dudas por MP!
  #15 (permalink)  
Antiguo 08/09/2015, 16:54
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Y no hay una clasificación de tipos de problema y métodos que en general sirvan para ellos? Puede ser un método distinto para cada tipo de problema...
  #16 (permalink)  
Antiguo 08/09/2015, 17:26
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 2 meses
Puntos: 606
Respuesta: Fuerza bruta lógica, ejemplos.

No todos los problemas tienen las mismas limitaciones ni tienen porque resolverse igual. Clasificación de los problemas? En base a que? En si son NP Completos?
__________________
Aviso: No se resuelven dudas por MP!
  #17 (permalink)  
Antiguo 08/09/2015, 23:41
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por agleiva Ver Mensaje
A mí me pasa, viene cualquiera de estos payasos que usan java a decir que
Yo uso Java... ¿soy un payaso?

He visto quejarse sobre insultos a varios usuarios sin haberlos. Lo que si he visto son críticas (que no insultos) a formas de programar, o señalizaciones sobre deficiencias de las herramientas. Pero este es el 1º insulto y menospreciación que veo.

Expresa mejor tus ideas, porque expresada de esta manera estás llamando payasos a todos los que usan java... digan o no lo que venga a continuación.

¿Un lenguaje mejor que otro? Pues según lo que se quiera conseguir.

Tengo un martillo y tengo un destornillador. ¿Cual es mejor para barrer mi casa?

Cita:
Iniciado por Tachikomaia Ver Mensaje
Hay algún libro de las posibles optimizaciones que se le pueden hacer a la fuerza bruta ciega, o algo así?
Qué gran idea.

Última edición por Kritik; 08/09/2015 a las 23:50
  #18 (permalink)  
Antiguo 09/09/2015, 01:37
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 1 mes
Puntos: 3
Respuesta: Fuerza bruta lógica, ejemplos.

A ver, si hablamos de optimizar un algoritmo por fuerza bruta de momento olvidate de flash. Los mejores bajo Windows son ASM y C++ pudiéndose optimizar el primero más que el segundo. Todo lo que se salga de ahí empeorará los tiempos. Veo absurdo hablar de optimizar cuando usas un lenguaje que no es muy óptimo. Ya puestos prefiero python que funciona sobre una maquina virtual pero es un lenguaje moderno y optimizado aunque para una fuerza bruta no tiene nada que hacer con los que digo.
  #19 (permalink)  
Antiguo 09/09/2015, 07:09
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Fuerza bruta lógica, ejemplos.

Buenas,

No existe la 'optimizacion del algoritmo por fuerza bruta'. El algoritmo es siempre tan sencillo e ineficiente como este:
Cita:
c <- gets first(P)
while' c != Λ do
if' valid(P,c) then output(P, c)
c <- gets next(P,c)
end while
Es decir, un bucle que recorre todos los casos posibles y retorna cuando encuentra un resultado.

Si la muestra es enorme, tardara un tiempo enorme, ya sea en Java, C, Assembler o binario.

Solo hay dos formas de reducir este tiempo:

-Funcionamente: reduciendo la muestra a buscar eliminando de entrada aquellos valores que consideremos absurdos. Esta reduccion dependera de cada caso y problematica. No hay reglas generales y nada que discutir aqui, si no hablamos de un caso concreto.
-Tecnicamente: utilizando tecnicas map/reduce que permitan paralelizar y procesar en distintos core/procesadores. Una tecnica bastante usada (por ejemplo para hacer Bitcoin mining por fuerza bruta) es la de utilizar los cores de las tarjetas graficas para estas tareas, aunque estos solo permiten hacer operaciones muy limitadas. En este caso obviamente SI es importante utilizar un lenguaje/plataforma que permita comunicarse con el hardware.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #20 (permalink)  
Antiguo 09/09/2015, 12:07
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Hay algún libro de las posibles optimizaciones que se le pueden hacer a la fuerza bruta ciega, o algo así?
El algoritmo de la fuerza bruta ciega no se puede optimizar. Requiere probar todas y cada una de las posibilidades. Si optimizas el método y no pruebas todas y cada una de ellas, o lo haces pero en un orden distinto a la lógica matemática (empezar por el primero y terminar por el último) entonces ya no tienes un algoritmo de fuerza bruta ciega, lo que tienes es uno de fuerza bruta lógica. (El ejemplo del roscón prueba el 100% de las posibilidades, pero en un orden distinto al de la fuerza bruta ciega y muy concreto elegido por el usuario)

Puedes optimizar otras cosas como te han sugerido para que el algoritmo se ejecute más rápido. Pero no el propio algoritmo.

Aun así, que un programa vaya lento no significa que no funcione o que sea malo.

Se juzgará bueno o malo sobre todo... según la competencia del programa. Si resulta que haces un programa que haga algo que ningún otro programa haga... pues resulta que tu programa, aun lento, será el mejor programa del mundo que hace eso que hace tu programa. (El 1º ordenador del mundo era lento a más no poder... pero era el mejor ordenador del mundo. Y derrotó a "Enigma")
  #21 (permalink)  
Antiguo 10/09/2015, 21:13
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Fuerza bruta lógica, ejemplos.

@Tachikomaia sinceramente, a esta altura creo que hay algunas cosas que ya deberías tener claras:

1.- Que tu herramienta (ActionScript) no te sirve para lo que quieres hacer.
2.- Que la mayor parte de los usuarios de este foro no la usamos ni nos interesa, por lo que técnicamente si, estas hablando otro lenguaje diferente al nuestro.
3.- Que a nadie le importa medio pepino si a ti te gusta o no te gusta, si usándola te sientes dentro de tu zona de confort o no, eso es algo personal tuyo, lo único que interesa es encontrar la solución optima a un problema determinado, con las herramientas correctas.

¿Cuantos años tienes? Si tienes mas de 60 entonces no pierdas tu tiempo aquí con respuestas improductivas, encuentra a otros locos en el mundo que este en la misma que vos y desarrollen algo juntos y vivan felices, a la mierda java, .net, javascript y php, tu estas para otra cosa.

Si tienes menos todavía estas a tiempo de aprender algo nuevo, personalmente me agrada mucho PHP, llevo años utilizándolo, me siento cómodo con el y lo conozco muy bien, no obstante hace 6 meses que empece a hacer desarrollos basados en IO.js y estoy migrando todos mis sistemas a esa plataforma, miles y miles de lineas de código PHP migradas a javascript, un lenguaje muy interesante pero que definitivamente me gusta menos que PHP ¿Porque? porque nuestra profesión es una migración constante, mantenerse actualizado cuesta mucho y requiere de mucha dedicación y esfuerzo no estancarse en ninguna plataforma.

Mira lo que te paso a ti, te estancaste en una plataforma que hoy es declarada obsoleta y que en los próximos año sera erradicada de los navegadores de forma permanente, hace unos años habrías recibido muchas respuestas alentándote e incluso aportando codigo, hoy nadie alienta ni aporta una sola linea, ese es el problema que tienes y que otros usuarios intentan por varios medios hacerte entender, que el problema no es que tus propios medios no te alcanzan para lograr tu objetivo ¡sino que ya no queda casi nadie que tenga medios para darte una mano!

En tu situación actual solo tienes 3 caminos:
1.- Migrar a otra plataforma (IO.js o ahora NodeFoundation son buenas opciones) donde halla una comunidad grande que te pueda apoyar.
2.- Seguir en ActionScript y buscar a algún otro rezagado entusiasta igual que tu disperso por el mundo para formar un equipo y hacer su propio camino (quien sabe, a lo mejor hacen algo que nos sorprende a todos)
3.- Seguir como ahora, no migrar, seguir preguntando y pidiendo ayuda en una comunidad que claramente no es del palo de actionscript obteniendo respuestas inproductivas.

Claramente la opcion 3 es la unica que no debes elegir pero bueno, "Es tu vida".

Con respecto al motivo de este tema, solo mencionar que es imposible optimizar un algoritmo de fuerza bruta ciega convirtiendolo en uno de de fuerza bruta logica sin conocer el problema especifico al detalle.
De hecho, la unica razon para elegir un algoritmo de fuerza bruta ciega es que ya se analizaron y probaron todas las alternativas posibles habidas y por haber, hasta que solo quedo eso como ultimo recurso.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 10/09/2015 a las 21:22
  #22 (permalink)  
Antiguo 12/09/2015, 07:55
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Fuerza bruta lógica, ejemplos.

Microsoft ha abandonado Silverlight y ahora Windows 10 trae Flash Player instalado por defecto, y no se puede desinstalar en la lista de programas instalados manualmente.
  #23 (permalink)  
Antiguo 12/09/2015, 11:53
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 2 meses
Puntos: 52
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por Kritik Ver Mensaje
Microsoft ha abandonado Silverlight
"abandonado" en el sentido de que no lanzarán más versiones. De cualquier manera, qué tiene que ver eso con algo? Tampoco es como que Adobe le esté dando demasiada manija a flash?? http://www.wired.com/2011/11/adobe-kills-mobile-flash/

Es claro que la era de los plugins del browser ha terminado con HTML 5.

Por cierto, ya que hablamos de Silverlight, cabe mencionar que el mismo es un subconjunto del runtime de .Net, e implementa un subconjunto de las APIs de WPF, con lo cuál (por ejemplo), sirve para sumar decimales, y hacer grillas de datos en la pantalla, por lo tanto se puede (o se podía) usar para crear aplicaciones de verdad, al contrario de flash, que solo sirve para hacer animaciones de monitos bailando.

Cita:
Iniciado por Kritik Ver Mensaje
y ahora Windows 10 trae Flash Player instalado por defecto, y no se puede desinstalar en la lista de programas instalados manualmente.
http://cdn5.howtogeek.com/wp-content...f532820538.jpg
  #24 (permalink)  
Antiguo 25/09/2015, 18:09
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por Malenko Ver Mensaje
No todos los problemas tienen las mismas limitaciones ni tienen porque resolverse igual. Clasificación de los problemas? En base a que? En si son NP Completos?
Al vichar ese link, pensé que era complicado o al menos complicado que yo lo entienda -quizá si se explica de otra forma sería más sencillo-, así que lo dejé para más tarde, tenía pensado leerlo pero el tiempo fue pasando y ya ves, creo que es un hecho que no lo leeré, lo siento.
Me refería a cosas sencillas como cuántos tipos de variable tiene el problema, si tiene un rival (eso requiere una doble investigación o un problema extra, es decir analizar el problema desde la perspectiva del rival), etc.

Profesor_Falken
Recientemente he aplicado un poco lo que tenía pensado de las "inducciones". Lo apliqué a investigaciones (sin programas) de videojuegos nada más, funciona así: Digamos que juegas usando magias de fuego y aumentando tu HP, y pierdes antes de las 10 horas de juego. Normalmente, el siguiente modo de jugar sería el mismo pero variando 1 de esos 2 factores, la lista sería algo así:
fuego y hp
fuego y mp
etc
Con este método lo que se hace es asignar 1 a fuego, hp y todo lo que se haya usado así como las combinaciones, y entonces para la próxima partida elegir cosas que tengan el menor puntaje posible, y así sucesivamente.
Prueba todos los casos pero varía el orden con un poco de inteligencia. Creo que optimiza.

Kritik
Si transformarlo en fuerza lógica no es optimizarlo, entonces en vez de decir optimizarlo digo transformarlo en fuerza lógica u optimizarlo en caso de que se pueda, creo que se entiende xD

NSD
No he pedido opiniones sobre la herramienta que uso. Curiosidad: ¿Me estás diciendo que en vez de usar la que me parezca cómoda use las que estén de moda? ¿por esto:
"el problema no es que tus propios medios no te alcanzan para lograr tu objetivo ¡sino que ya no queda casi nadie que tenga medios para darte una mano!"
?
Sin embargo Flash es muy básico, quien tenga mucha experiencia habrá visto cosas parecidas. Quizá el problema es que uds resuelven este tipo de problemas "yendo a buscar el cubo adecuado", en vez de usar los que tienen
http://www.acertijosypasatiempos.com...mente-4-litros
En mi caso, hallarlo no me es tan sencillo, por errores en mi compu o lo que sea. Pero tengo buenas noticias para ti:
Vengo porque voy a buscar otra herramienta, porque de momento decidí dejar la interfase de lado (estaba haciendo una) y más allá de eso el Flash que uso no me parece tan bueno, si se quiere crear y cargar archivos al menos. Empecé a trabajar con strings y aunque parece que logré que funcione bien, lo que debí hacer para eso me pareció muy enredado y quiero algo que me de más seguridad de que funciona bien y "claridad", es decir no tener que agregar tantas cosas confusas en el código o en tantos sitios (frames) diferentes (aunque eso es por no usar functions, suponiendo que era más fácil así, ya que tienen sus pequeñas diferencias).
Haré un tema para pedir esa herramienta. No se hable más de eso en este.
Ah, tengo unos 30 años.
  #25 (permalink)  
Antiguo 25/09/2015, 20:46
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
No he pedido opiniones sobre la herramienta que uso. Curiosidad: ¿Me estás diciendo que en vez de usar la que me parezca cómoda use las que estén de moda? ¿por esto:
"el problema no es que tus propios medios no te alcanzan para lograr tu objetivo ¡sino que ya no queda casi nadie que tenga medios para darte una mano!"
?
No he opinado respecto a tu herramienta.
- Que esta obsoleta es un hecho.
- Que no hay muchos que la usen es un hecho.
- Que nadie ha aportado una sola linea en ese lenguaje pero si en otros es un hecho.
- Que no te sirve para lo que quieres hacer (programar un algoritmo de fuerza bruta para resolver X problema) es un hecho.

Con respecto a tu pregunta diré que la respuesta es un si a medias.
Te sugiero que uses una herramienta que tenga una comunidad activa y que no te disguste, casualmente las herramientas de moda tienen una buena comunidad (por algo están de moda), aun así Phyton esta de moda pero yo no lo usaría. Queda en vos tomar la desicion de que usar.

Cita:
Si transformarlo en fuerza lógica no es optimizarlo, entonces en vez de decir optimizarlo digo transformarlo en fuerza lógica u optimizarlo en caso de que se pueda, creo que se entiende xD
Es que en realidad, el proceso es justamente el opuesto, no se va de una "fuerza bruta ciega" a un "fuerza bruta logica optimizada", se va a una "fuerza bruta ciega" cuando no se pudo lograr ningun tipo de "fuerza bruta optimizada", solo cuando es ultimo recurso.
Pensar en recurrir a la fuerza bruta es la ultima opcion, en criptografia por ejemplo, una metrica para categorizar a los algoritmos de cifrado es si justamente, la unica forma de romperlos es mediante fuerza bruta, aquellos que cumplan con ese requisito se consideran "seguros", luego para definir que tan seguros son se evalua el espacio de claves, es decir cuantas combinaciones tendria que probar el atacante para romper un cifrado X.

Con respecto al acertijo planteado el espacio de soluciones es infinito por lo que la fuerza bruta no es una opcion viable ya que es imposible encontrar todas las soluciones posibles.
Si se quiere solo 4 litros y se tiene un balde en el que entran 5, se le echan 4 litros directamente y listo.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #26 (permalink)  
Antiguo 25/09/2015, 21:11
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
No he opinado respecto a tu herramienta.
- Que esta obsoleta es un hecho.
- Que no hay muchos que la usen es un hecho.
- Que nadie ha aportado una sola linea en ese lenguaje pero si en otros es un hecho.
- Que no te sirve para lo que quieres hacer (programar un algoritmo de fuerza bruta para resolver X problema) es un hecho.
Alguno te diría que estás opinando sobre lo que es un hecho respecto a esa herramienta, cosa que tampoco pedí y que es como opinar de la herramienta.
Pero se puede simplificar la cuestión: No he pedido que se hable de mi herramienta.

Lo del acertijo no era para que lo resolviera una FB, era para decir que sí, es más fácil conseguir un bote de 4 litros que arreglárselas con uno de 3 y 5, así como es más fácil conseguir un programa que haga las cosas más fáciles en vez de usar los medios que se tengan. Y te decía que, quizá, esa costumbre de buscar otros medios en vez de ingeniárselas con lo que se tiene, puede llevar a no saber ingeniárselas con lo que se tiene, y que no es que uds no tengan medios para ayudarme sino que están acostumbrados a usar otros. No es una critica, sólo una reflexión sobre lo que dijiste.

Última edición por Tachikomaia; 25/09/2015 a las 21:28
  #27 (permalink)  
Antiguo 25/09/2015, 21:33
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por NSD Ver Mensaje
Es que en realidad, el proceso es justamente el opuesto, no se va de una "fuerza bruta ciega" a un "fuerza bruta logica optimizada", se va a una "fuerza bruta ciega" cuando no se pudo lograr ningun tipo de "fuerza bruta optimizada", solo cuando es ultimo recurso.
Ok, no lo había pensado. Lo que pasa que mi idea fue partir de no suponer cosas (*) y recientemente empecé a ver que algunas se podían suponer, por eso pedía ejemplos.
(*): En un RPG por ejemplo puedes suponer que entre menos HP tenga el rival mejor, por lo que entre más HP quiten tus ataques mejor. Pero eso uno piensa hasta que recibe ataques tipo "Revenge" xD
  #28 (permalink)  
Antiguo 26/09/2015, 05:59
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Fuerza bruta lógica, ejemplos.

Vivo en el Nº 7, Calle Melancolía... (J.Sabina)

Ahora alguien llega al Nº 7, Calle Melancolía y se encuentra un telefonillo con 3 bloques, 7A, 7B y 7C.

En cada bloque hay 6 pisos, y en cada piso las letras A,B y C.

Para encontrar a J.Sabina tendremos que usar la fuerza bruta, pues los datos recibidos los hemos usado ya, al seleccionar la calle entre todas las que hay. Y el nº 7 de entre todos los que hay en esa calle. Ya la fuerza lógica no nos puede ayudar más.

Empezamos:
7A - 1A
7A - 1B
7A - 1C
7A - 2A
etc.

Para pasar de una fuerza bruta a una fuerza lógica necesitas más información. Por ejemplo:
Vivo en el Nº 7, Calle Melancolía, y en mi puerta hay una C... (J.Sabina)

Ahora podremos optimizar un poco más el algoritmo... lo cual nos dará para probar:
7A - 1C
7A - 2C
7A - 3C
(...)
7B - 1C
7B - 2C
etc

Ahora bien. Qué pasaría si parte de la información recibida sobre el problema no es usada en el algoritmo. Vamos a despreciar el último dato recibido. A ver qué pasa:

Vamos a hacer 2 algoritmos, a ver cual es el más óptimo, utilizando únicamente la información recibida.

1º Algoritmo:

1º Vamos a seleccionar todos los Nº 7 de todas las calles de Madrid.
"Vivo en el Nº7".
2º De entre todas las direcciones seleccionadas, escogemos las que estén en la C/Melancolía.
"Calle Melancolía".(Casualmente solo hay 1)

No vamos a meter en el algoritmo de búsqueda de la solución más datos. Así pues... solo nos queda empezar a probar:

7A - 1A
7A - 1B
7A - 1C
7A - 2A
(...)
7B - 1A
7B - 1B
etc

Logísticamente, el trabajo es el mismo que el 2º algoritmo:

2º Algoritmo:

1º De entre todas las direcciones seleccionadas, escogemos la C/Melancolía. (Casualmente solo hay 1)
"Calle Melancolía".
2º De entre todos los números en esa calle, ,escogemos el nº 7.
"Vivo en el Nº 7".

No vamos a meter en el algoritmo de búsqueda de la solución más datos. Así pues... solo nos queda empezar a probar:

7A - 1A
7A - 1B
7A - 1C
7A - 2A
(...)
7B - 1A
7B - 1B
etc

Como ves, para buscar la dirección de J.Sabina hemos utilizado la información recibida para convertir un algoritmo de fuerza bruta (Buscar en cada casa, de cada portal, de cada número, de cada calle de Madrid) en una búsqueda más específica.

Sin embargo, esta no es la búsqueda más óptima, porque tenemos una información que no hemos utilizado. La cual es: "y en mi puerta hay una C".

Si incluimos esta información, podremos optimizar mucho más el algoritmo para la resolución del problema.

Ahora las conclusiones:
1º Conclusión:
- Obteniendo más información, y utilizándola en el algoritmo llegaremos más rápido a la resolución del problema.

2º Conclusión:
- El algoritmo de fuerza bruta TAMBIÉN resuelve el problema, con la única diferencia de que normalmente tardará más en resolverlo.

Entre las 2 conclusiones, podemos llegar a una 3ª conclusión:

3ª conclusión:
- Si el factor tiempo en resolución interviene en la resolución del problema (lo sepamos nosotros o no) el algoritmo de fuerza bruta podría no resolver dicho problema.
(P.Ej: Recorremos el Barrio de la Alegría antes de llegar a la Calle Melancolía, y para cuando llegamos a la Calle Melancolía, J.Sabina ya se mudó al Barrio de la Alegría. Por lo tanto no llegamos a encontrarlo. Ej2: Búsqueda de contraseña que cambia cada X)

Y esta conclusión nos ayuda a hacer una 4ª conclusión:

4ª conclusión:
- Por si acaso, siempre es mejor escoger el algoritmo que tarde menos en resolver el problema.
- Consumir menos esfuerzo en resolver un problema siempre es mejor que consumir un mayor esfuerzo.
- Siempre será mejor tardar un poco más en diseñar un algoritmo que utilice el 100% de la información disponible o alcanzable que no esforzarse en diseñar dicho algoritmo y utilizar el de fuerza bruta. Pues el tiempo invertido en diseñar el algoritmo que utilice el 100% de la información es luego ahorrado con creces al ejecutar dicho algoritmo.
  #29 (permalink)  
Antiguo 26/09/2015, 06:34
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Fuerza bruta lógica, ejemplos.

Cita:
Iniciado por Tachikomaia Ver Mensaje
Cita:
Iniciado por NSD Ver Mensaje
No he opinado respecto a tu herramienta.
- Que esta obsoleta es un hecho.
- Que no hay muchos que la usen es un hecho.
- Que nadie ha aportado una sola linea en ese lenguaje pero si en otros es un hecho.
- Que no te sirve para lo que quieres hacer (programar un algoritmo de fuerza bruta para resolver X problema) es un hecho.
Alguno te diría que estás opinando sobre lo que es un hecho respecto a esa herramienta
DRAE:
obsoleto, ta.
(Del lat. obsolētus).

1. adj. Poco usado.
2. adj. Anticuado, inadecuado a las circunstancias actuales.

Así pues:
Cita:
Iniciado por NSD Ver Mensaje
- Que esta obsoleta es un hecho.
No es una opinión, es un hecho.
Cita:
Iniciado por NSD Ver Mensaje
- Que no hay muchos que la usen es un hecho.
Comparado con el uso de otros lenguajes, cuyas gráficas sobre uso de lenguajes están disponibles en google, es un hecho. no una opinión.
Cita:
Iniciado por NSD Ver Mensaje
- Que nadie ha aportado una sola linea en ese lenguaje pero si en otros es un hecho.
Esto es un hecho objetivo, no una opinión subjetiva.
Cita:
Iniciado por NSD Ver Mensaje
- Que no te sirve para lo que quieres hacer (programar un algoritmo de fuerza bruta para resolver X problema) es un hecho.
Esto SI es una opinión sobre lo que es, o no es un hecho. Pues... ¿y si se consigue, aunque no sea la solución más óptima únicamente por el lenguaje utilizado? En ese caso, incluso aunque sea una solución muy mala... seguiría siendo una solución.

Una vez dicho todo esto... creo que es inútil seguir insistiendo en el tema de que alguien debe o no debe cambiar. Cada uno sabe lo que se hace. Y una cosa es opinar y otra cosa es forzar a alguien a hacer algo. Creo que ya se ha opinado lo suficiente en este foro sobre si este chico debe o no debe cambiar de lenguaje de programación. Y esto parece ya una persecución más que otra cosa. El que no quiera responder, que no responda. Pero me parece que se debería de dejar ya tranquilo este tema.

Por otro lado, cuando una herramienta no se adecúa, o no se sabe como adecuarla a la resolución de un problema y otra herramienta si se sabe como adecuarla a dicha resolución... lo lógico es utilizar la segunda herramienta.

Si yo se como atornillar un tornillo con una moneda y no tengo nada más a mano para hacerlo... ¿Qué hay de malo en utilizar esta herramienta para la resolución del problema? Ahora bien, si la moneda no encaja de lado, y a nadie se le ocurre apoyar la moneda trasversalmente en el tornillo... y a los que ofrecen asesoramiento solo se les ocurre que se use un destornillador... entonces solo se puede hacer 2 cosas:
- Abandonar el problema sin resolverlo.
- Cambiar de herramienta.

Eso no significa que no se pueda atornillar ese tornillo con esa moneda, porque usando la moneda trasversalmente si se podría hacer fuerza para girar el tornillo, pero como a nadie se le ha ocurrido esa solución, pues hay que tirar de las soluciones que a uno se le ocurren. Y cuando la única solución encontrada es cambiar de herramienta pues habrá que hacerlo. Aunque esa decisión solo lo decide quien quiera atornillar el tornillo, no quien asesora..

Si quien asesora quiere ver resuelto el problema aunque el que lo está haciendo se demore (por lo que sea), que se busque otro tornillo que sea igual y que use la herramienta que quiera.

Última edición por Kritik; 26/09/2015 a las 06:45

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:14.