Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - 0xFer

#171
Cita de: Extonft en  9 Enero 2016, 03:30 AM
Quiero que me recomendéis las páginas que os gustan o son buenas

http://stackoverflow.com/

Cuando tengo una duda allí siempre encuentro la respuesta.  :laugh:
#172
Muy útil la información @Chuidiang  ;D
#173
La verdad no logro entender lo que es un Laboratorio Informático, yo pensé que con una computadora ya estas super equipado  :silbar:
#174
CitarPor cierto, no sería <= prob ?

rand()%100 genera un número en [0,99], Si por ejemplo 'prob' es 50 entonces nos interesa un número en [0,49] o sea un número menor que 50.
#175
CitarNo entendí bien lo que quieres hacer en esa función

Es el algoritmo que te habia mencionado, la solución en teoria se iría guardando en el arreglo 'tablero' con la variable 'n_saltos' y termina cuando n_saltos es igual a 64 es decir, cuando se ha visitado todas las casillas y por lo tanto se ha encontrado la solución. El tablero puede ser unidimensional, bidimensional o como sea pero el algoritmo sería el mismo sólo que tendrías que ordenar los movimientos del caballo con la heuristica que ya comentaste( visitar primero las casillas que aparenten solucionar más rápido el problema).

CitarA mi se me ocurrió ya una manera

Vale, intenta solucionarlo a tu manera así se aprende más. La verdad yo lo intentaría hacer incluso durante semanas si es necesario  ;-)
#176
Java / Re: final class
7 Enero 2016, 16:36 PM
Creo que sucede como en los métodos de las interfaces, los métodos son abstractos por defecto pero por legibilidad uno los puede poner de todos modos.
#177
Pues ni idea  :-( ...
#178
No sé si funciona porque no lo he compilado;

Código (cpp) [Seleccionar]

bool Recorrido( int casilla_actual, int n_saltos ){

tablero[casilla_actual] = n_saltos;
   
if( n_saltos == 64 ) return true;

else {
GenerarCasillasDisponibles();
Para cada Casilla Disponible hacer:
if( Recorrido(casilla_nueva,n_saltos+1) ) return true;
}

tablero[casilla_actual] = 0;

return false;

}


Lo acabo de hacer en 5 minutos pero no sé si funciona, espero que si entiendas la idea aunque sea, iré a dormir y mañana lo continuo.
#179
Cita de: JavierScars en  7 Enero 2016, 04:28 AM
Lo que necesitó ahora es crear una clase de historial que le permita al programa devolverse un paso y cuando se quede sin opciones devolverse 2 y así. Alguna idea?

Para ese tipo de problemas se suele emplear el algoritmo BackTracking que no es más que un algoritmo recursivo de búsqueda que explora todas los caminos que puedan conducir a la solución del problema aunque a veces el tiempo que el algoritmo demora en encontrar la solución es mucho por lo que se suele utilizar heuristicas que son como atajos para reducir el tiempo de búsqueda( para el problema del recorrido del caballo no se puede sólo con el algoritmo BackTracking porque se demora mucho tiempo aunque de todas formas se puede utilizar).

Cuando entiendas el funcionamiento del algoritmo por ejemplo puedes hacer un tablero más pequeño para que puedas ver si te funciona el algoritmo para después ampliar el tablero y probar con heuristicas( una que conozco es explorar las casillas desde donde se tengan menos casillas para saltar)

CitarOtra cosa llevó más o menos 500 líneas de código... Creo que me estoy enredando mucho para hacer cosas simples o es un número normal? Estimen aproximadamente cuantas les llevaría a ustedes.

Pues sólo el procedimiento del algoritmo para este problema lleva no más de 20 lineas. Para saber si la casilla en donde se quiere saltar está disponible yo me suelo llevar otras 2 lineas utilizando el método de representación 0x88 que se suele utilizar mucho en los motores de ajedrez.

Un saludo.
#180
Cita de: Flamer en  6 Enero 2016, 23:41 PM
Me falta que aprender mas de c++   jajajajaja

Saludos

Mira el código del método, funciona mao o meno como tu solución.