elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Top 10 ejercicios más sencillos sobre fuerza bruta "de métodos"?
0 Usuarios y 3 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Top 10 ejercicios más sencillos sobre fuerza bruta "de métodos"?  (Leído 2,431 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.790


Hackentifiko!


Ver Perfil
¿Top 10 ejercicios más sencillos sobre fuerza bruta "de métodos"?
« en: 6 Julio 2026, 03:53 am »

Una fuerza bruta "de valores" prueba valores, así que si hay millones de situaciones posibles puede que necesites guardar millones de variables.
Ejemplo: Se le muestra el número 0 y debe decir el mismo número pero el programa no sabe eso.
Prueba el 0, sirve, crea la variable Situacion0=0, o sea, cuando el número es 0 decir 0.
Se le muestra el número 1. Prueba el 0, no sirve, prueba el 1, crea la variable Situacion1 = 1, etc, etc.

En cambio una "de métodos" prueba métodos, lo cual supongo reduce la cantidad de información que debe quedar guardada.
Ejemplo: Se le muestra el número 0 y debe decir eso*3 pero el programa no lo sabe.
Prueba hacerle *0, sirve (porque 0*3 también es 0).
Siguiente situación, se le muestra 1.
Le hace *0, no sirve.
Se vuelve a la 1er situación, pero ahora prueba *1. Sirve.
Siguiente situación: 1, le hace *1, no sirve.
Se vuelve a la 1er situación, pero ahora prueba *2. Sirve.
Siguiente situación: 1, le hace *2, no sirve.
Se vuelve a la 1er situación, pero ahora prueba *3. Sirve.
Siguiente situación: 1, le hace *3, sirve.
Y así va a seguir probando todas las situaciones que se requieran, siempre va a servir y entonces la fuerza

crea Solucion = Numero*3

Quiero aprender a programar fuerza bruta "de métodos" y por eso pregunto cuales serían los ejercicios más sencillos para empezar.

Lo había hablado con la IA pero necesito algo más sencillo. Lo 1ero que me dijo fue un robot en un laberinto pero supongo que hay cosas más sencillas.
https://share.google/aimode/ZojJzrjPaAkS3xcgK


« Última modificación: 6 Julio 2026, 03:58 am por Tachikomaia » En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.790


Hackentifiko!


Ver Perfil
Re: ¿Top 10 ejercicios más sencillos sobre fuerza bruta "de métodos"?
« Respuesta #1 en: 16 Julio 2026, 15:05 pm »

Anduve sin ganas de abrir los ojos, comer, etc, me dolían un poco, no podía ver bien, y aún tengo toz y ando medio deprimido también.
¿Causas? Probablemente alguna de estas:
- Vivo medio lejos de un baño, en eso me pareció que mi orín tendría olor medio agradable, me pareció graciosa la idea de olerlo, había oído que podía tener bacterias pero bueno. Hace años en TV pasaron que gente tomaba lo suyo, no llegué a tanto.
- Sentí frío en la garganta pero no me abrigué. Pero no es mi culpa que ninguno de los abrigos que tengo abriguen el cuello, varios tenían cierre roto, los hice unir, pero tan arriba no los unieron (y si los hubieran unido probablemente no me los podría poner). No venden mucho de eso y remeras que compré tienen el cuello particularmente bajo.
- Mis familiares invitaron a una gente que probablemente tenía bacterias diferentes a las que acostumbro.

Lo de la depresión es que en la vida logro muy poca cosa y por acá parece que todo es extra complicado, por poner un ejemplo ya van 3 pantalones que compro y los 3 se caen, no puede uno moverse sin tener que estar levantándose los pantalones a cada rato.

Acá la IA hizo un top 10 de ejercicios sencillos sobre el tema y una idea de cómo resolver el 1ero:
https://share.google/aimode/QG02jjyEF3qMqyK49

Acá hice una versión que prueba más números, pero solo 1 operador:
Código
  1. // Se buscará fórmula para obtener un número N...
  2. // a partir de él mismo usando +PostOperador:
  3. // ¿Cuánto debe ser PostOperador para que...
  4. // N+PostOperador == N?
  5. PostOperador = 9;
  6. N = 0;
  7. do {
  8. trace("Probando PostOperador "+PostOperador+"; N "+N);
  9. // Vemos si PostOperador sirve al actual valor de N:
  10. Resultado = N+PostOperador;
  11. if (Resultado == N) {
  12. trace("PostOperador "+PostOperador+" sirvió para N "+N);
  13. // Sí, cambiamos N para ver si así también sirve:
  14. N++;
  15. } else {
  16. trace("PostOperador "+PostOperador+" FALLó para N "+N);
  17. // No, probaremos Ns desde el inicio,
  18. // con otro PostOperador:
  19. PostOperador--;
  20. N = 0;
  21. }
  22. } while (N<10);
  23. trace ("El PostOperador útil parece ser "+PostOperador);

Me parece que se puede hacer con 2 whiles y que queda mejor de ese modo ¿cómo sería?


En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.790


Hackentifiko!


Ver Perfil
Re: ¿Top 10 ejercicios más sencillos sobre fuerza bruta "de métodos"?
« Respuesta #2 en: 18 Julio 2026, 18:47 pm »

La IA me dijo una "optimización" que usa 2 whiles pero sigue usando ifs así que la descarté.

Más allá de eso mejoré el código, ahora varía el operador:
Código
  1. // Se buscará fórmula para obtener un número N...
  2. // a partir de él mismo usando un operador y PostOperador:
  3. // ¿Cual debe ser el operador y PostOperador para que...
  4. // N Operador PostOperador == N?
  5. SolucionHallada = false;
  6. Operadores = ["+", "-", "*", "/", "-N", "/N"];
  7. PostOperador = -10;
  8. while (SolucionHallada == false) {
  9. SolucionHallada = true;
  10. PostOperador++;
  11. NroDeOperador = -1;
  12. do {
  13. NroDeOperador++;
  14. Operador = Operadores[NroDeOperador];
  15. N = -1;
  16. do {
  17. N++;
  18. trace("Probando "+Operador+PostOperador+" para N "+N);
  19. // Vemos si Operador y PostOperador sirven al actual valor de N:
  20. if (Operador == "+") {
  21. Resultado = N+PostOperador;
  22. } else if (Operador == "-") {
  23. Resultado = N-PostOperador;
  24. } else if (Operador == "*") {
  25. Resultado = N*PostOperador;
  26. } else if (Operador == "/") {
  27. Resultado = N/PostOperador;
  28. } else if (Operador == "-N") {
  29. Resultado = PostOperador-N;
  30. // } else if (Operador == "/N") {
  31. } else {
  32. Resultado = PostOperador/N;
  33. }
  34. if (Resultado == N) {
  35. trace(Operador+PostOperador+" sirvió para N "+N);
  36. // Sirvió, N cambiará para ver si así también sirve:
  37. } else {
  38. trace(Operador+PostOperador+" FALLó para N "+N);
  39. // No sirvió, probaremos Ns desde N 0,
  40. // con otro Operador:
  41. SolucionHallada = false;
  42. break;
  43. }
  44. } while (N<10);
  45. } while (SolucionHallada == false && NroDeOperador < Operadores.length);
  46. }
  47. trace ("El Operador y PostOperador útiles parece ser "+Operador+PostOperador);

Cosas a hacer ahora:
- Optimizarlo porque usa SolucionHallada varias veces, está lioso.
- Agregar el operador ^, ^N y mejorar el nombre PostOperador porque ya no siempre es eso.
- Agregar más operadores, los de logaritmo que no sé bien cómo se usan, si se puede con ^.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines