Irgendwie habe ich gerade Brett vor Kopf oder es liegt an den Temperaturen 
Wie kann ich denn berechnen, wie viele unterschiedliche Muster es in einem 2x2 Grit gibt, wenn jeder Path mind. 3 lang sein muss?
Mein Code spuckt 14 aus, es sollten aber 24 verschiedene Möglichkeiten (Wege) geben, wenn ich mir nicht irre
Möglicherweise habe ich eine Eigenheit von JS übersehen?
Wie kann ich denn berechnen, wie viele unterschiedliche Muster es in einem 2x2 Grit gibt, wenn jeder Path mind. 3 lang sein muss?
Mein Code spuckt 14 aus, es sollten aber 24 verschiedene Möglichkeiten (Wege) geben, wenn ich mir nicht irre
Möglicherweise habe ich eine Eigenheit von JS übersehen?
Javascript:
calcPaths(2, 2);
function calcPaths(n, m) {
let arr = [];
for (let i = 0; i < n; i++) {
let a = [];
for (let j = 0; j < m; j++) {
a.push(i * m + j + 1);
}
arr.push(a);
}
console.log(arr);
console.log(solvePath(arr, new Set(), 3, 0));
// 123 (1.)
// 124 (2.)
// 132 (3.)
// 134 (4.)
// 142 (5.)
// 143 (6.)
// 213 (7.)
// 214 (8.)
// 231 (9.)
// 234 (10.)
// 241 (11.)
// 243 (12.)
// 312 (13.)
// 314 (14.)
// 321 (15.)
// 324 (16.)
// 341 (17.)
// 342 (18.)
// 412 (19.)
// 413 (20.)
// 421 (21.)
// 423 (22.)
// 431 (23.)
// 432 (24.)
}
function solvePath(arr, path_set, n, idx) {
if (n <= 0) {
return 0;
}
let r = 0;
for (let i = parseInt(idx / arr[0].length); i < arr.length; i++) {
for (let j = parseInt(idx % arr[0].length); j < arr[i].length; j++) {
idx++;
let v = arr[i][j];
if (!path_set.has(v)) {
let set = new Set(path_set);
set.add(v);
r += solvePath(arr, path_set, n - 1, idx) + 1;
}
}
}
return r;
}