蛮力算法
public class eightQueens {
public static void main(String[] args) {
int[] queens = initial();
while (check(queens))
shake(queens);
show(queens);
}
public static boolean check(int[] queens) {
for (int i = 0; i < 8; i++)
for (int j = 0; j < i; j++)
if (Math.abs(i - j) == Math.abs(queens[i] - queens[j]))
return true;
return false;
}
public static void shake(int[] queens) {
int randomNum, temp, i;
for (i = 0; i < 8; i++) {
randomNum = (int) (Math.random() * 10000000) % 8;
temp = queens[i];
queens[i] = queens[randomNum];
queens[randomNum] = temp;
}
}
public static void show(int[] queens) {
int i, j;
for (i = 0; i < 8; i++) {
for (j = 0; j < queens[i]; j++)
System.out.print("| ");
System.out.print("|Q");
while (j++ + 1 < 8)
System.out.print("| ");
System.out.println('|');
}
}
public static int[] initial() {
int[] queens = new int[8];
for (int i = 0; i < 8; i++)
queens[i] = i;
return queens;
}
}


