Поскольку я понятия не имел, как подсчитывать количество таких путей комбинаторно, я написал программу на Java, которая подсчитывает такие пути и печатает пути, которые я ограничил квадратными массивами. Однако уже в массиве размером 3х3 программа печатает всего 9 путей, при этом проверка количества таких путей вручную дала 12 путей. Вот программа:
Код: Выделить всё
public class pathCalculator {
public static int pathsCalculator(boolean[][] arr) {
return pathsCalculator(arr, 0, 0, "");
}
public static int pathsCalculator(boolean[][] arr, int i, int j, String s) {
if (i < 0 || i > arr.length - 1 || j < 0 || j > arr[0].length - 1) {
return 0;
} else if (arr[i][j] == false) {
return 0;
}
if (i == arr.length - 1 && j == arr[0].length - 1) {
s = s + "[" + (arr.length - 1) + "," + (arr.length - 1) + "]";
System.out.println(s);
return 1;
} else {
arr[i][j] = false;
s = s + "[" + i + "," + j + "]";
boolean[][] arr1 = new boolean[arr.length][arr.length];
for (int n = 0; n