Yo tengo algo pensado para descartar todas las posibilidades donde las reinas se atacan por filas o columnas
Pues creo que seria interesante que participases. De momento los dos algoritmos que hay publicados solo "eliminan" la posibilidad de que dos reinas estén en la misma fila, o columna, según se mire. Pero si tu algoritmo evita ambos casos a la vez sera mucho más rápido...
Me encantaria participar, pero estoy muy corto de tiempos. Estoy preparando 2 materias de la facu bastante pesaditas y no tengo tiempo para sentarme a codear. Me hago ratos para pasar por el foro y tirar una q otra idea, pero de verdad se me complica.
Y hablando de tirar ideas, les comento rapidito un par de ideas que se me ocurrieron a ver si las pueden aplicar en sus algoritmos. La primera es la que ya mencione:
Cada reina tiene asignada una columna y una fila (de primera podrian estar posicionadas ocupando la diagonal principal). Y para encontrar una nueva posicion donde no se ataquen por filas o columnas, basta con permutar dos filas (o columnas). Entonces de cada permutacion obtendriamos un nuevo tablero donde las reinas no se atacan por filas ni por columnas.
Ademas para descartar una q otra posibilidad, podriamos chequear que en los casilleros adyacentes donde haya una reina, no haya otra. Ningun ser humano colocaria dos reinas pegadas mientras resuelve el problema.. por q nuestro algoritmo tendria q hacerlo?
Saludos!!!