如何展示其具体的迭代次数
时间: 2024-03-13 21:42:40 浏览: 11
要展示回溯法具体的迭代次数,可以在backtrack方法中加入一个计数器count,每次进入该方法时count加1,当找到一种合法方案时输出count即可。具体代码示例如下:
```java
public class Backtracking {
private int[][] board; // 棋盘
private int n; // 士兵数量
private int count; // 迭代次数
public void backtrack(int row, int cnt) {
count++;
if (cnt == n) { // 找到一种合法方案
printBoard();
System.out.println("迭代次数:" + count);
return;
}
for (int i = 0; i < n; i++) {
if (isValid(row, i)) { // 当前位置能够放置士兵
board[row][i] = 1;
backtrack(row + 1, cnt + 1);
board[row][i] = 0; // 回溯
}
}
}
private boolean isValid(int x, int y) {
for (int i = 0; i < x; i++) { // 检查列
if (board[i][y] == 1) {
return false;
}
}
for (int i = x - 1, j = y - 1; i >= 0 && j >= 0; i--, j--) { // 检查左上角
if (board[i][j] == 1) {
return false;
}
}
for (int i = x - 1, j = y + 1; i >= 0 && j < n; i--, j++) { // 检查右上角
if (board[i][j] == 1) {
return false;
}
}
return true;
}
private void printBoard() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(board[i][j] + " ");
}
System.out.println();
}
System.out.println();
}
public static void main(String[] args) {
Backtracking bt = new Backtracking();
bt.n = 4;
bt.board = new int[bt.n][bt.n];
bt.count = 0;
bt.backtrack(0, 0);
}
}
```
以上代码在找到一种合法方案时输出迭代次数,可以帮助我们更好地了解回溯法的运行情况。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)