29/11/2012, 07:57
|
| | | Fecha de Ingreso: enero-2011 Ubicación: Cali, Colombia, Colombia
Mensajes: 116
Antigüedad: 13 años, 3 meses Puntos: 4 | |
Analisis Problema de las 8 reinas (Bactraking) Hola amigos tengo un pequeño problema con el algoritmo de las 8 reinas..... Código PHP: <?php function ocho_reinas($pos, $solucion, $diagonal_desc, $diagonal_asc) { if($pos > 7){ //Validación para saber si ha terminado de recorrer todas las posibles soluciones. echo "{"; foreach($solucion as $i =>$j ){ //Recorre el Array de soluciones para mostrarlas. echo "".$j.","; if($i==7){ echo "}"; echo "<br>"; } } } else { for ($i = 0; $i < 8; $i++) { //Recorremos las filas if(!in_array($i, $solucion) AND !in_array(($pos+$i), $diagonal_asc) AND !in_array(($pos-$i), $diagonal_desc) ) { //Entra , si esa casilla no está amenazada! $diagonal_asc[$pos] = $pos+$i; //diagonal ascendente. $diagonal_desc[$pos] = $pos-$i; //diagonal descendente. $solucion[$pos] = $i; //Se guarda una posición valida. ocho_reinas($pos+1, $solucion, $diagonal_desc, $diagonal_asc); } } } $pos = 0; //Posicion inicial $solucion = Array();//posibles soluciones. $diagonal_desc = Array();//diagonales descendentes $diagonal_asc = Array();//diagonales ascendentes . ocho_reinas($pos, $solucion, $diagonal_desc, $diagonal_asc);//Se llama al metodo de la lógica de las reinas. ?>
He hecho la prueba de escritorio los datos que arroja son los mismos hasta cierto punto comparandolos con los que muestra la ejecucion del algoritmo...(filas-->valores, Columnas--> indices del array)
- Tengo una duda, como funciona el la parte recursiva del lagortmo?, es decir c por ejemplo cuando la i del for va en 1 y se cumple la condicion if(!in_array($i, $solucion)....), al llamar mi metodo recursivamente, el for continua con su ietraccion normalmente? es decir sigue con i =2, i=3... y asi sucesivante, o vuelve a iniciar en 0???
espero que me puedan ayudar...
Gracias...
Algortimo http://squadronsuicida.99k.org/Reinas/Reinas.php.
Descarga http://squadronsuicida.99k.org/Reinas/Reinas.txt
Prueba http://squadronsuicida.99k.org/Reinas/Reinas_Prueba.php.
Descarga http://squadronsuicida.99k.org/Reinas/Reinas_Prueba.txt |