Nová ukázka
Reset
Načíst z URL
Uložit a získat odkaz
Vztahuje se k…
Nevyplňujte
Napiště „nejsem robot“
▶
Přepnout zobrazení
Výsledek
<div id="result"></div> <button onclick="gen()">Generuj</button>
HTML
Autoformát
Standardní režim
Mobilní zobrazení
CSS
Autoformát
CSS reset
Až na konci
var data = [ [1,1,1,3,3,4,4,4,5,5,6,7,8,8], [1,7], [1,1,1,3,3,4,4,4,5,5,6,7,8,8], [1,2,5,5], [2,2,3,3,4,5,5,5,6,8], [1,2,2,4,6,6,8] ]; var data2 = [ ['a','b','c','d','e','f'], ['b','c','d'], ['a','b','c','d','e','f','g','h','i'], ['d','e'], ['e'] ]; function removeX(data, x, start) { wereX = []; for (var i = start; i < data.length; i++) { var arr = data[i]; for (var j = 0; j < arr.length; j++) { if (arr[j] === x) { arr[j] = undefined; wereX.push({row: i, col: j}); } } } return wereX; } function putBackX(data, wereX, x) { for (var i = 0; i < wereX.length; i++) { pos = wereX[i]; data[pos.row][pos.col] = x; } } function normalize(data) { for (var i = 0; i < data.length; i++) { var arr = data[i]; arr.sort(); var index = 0; var last = undefined; var length = arr.length; for (var j = 0; j < length; j++) { if (last != arr[j]) { arr[index] = arr[j]; index++; last = arr[j]; } } for (; index < length; index++) { arr.pop(); } } } function srr(data, start, result, results) { if (data.length == start) { results.push(result.slice(0)); return; } var arr = data[start]; for (var i = 0; i < arr.length; i++) { var x = arr[i]; if (x === undefined) { continue; } var wereX = removeX(data, x, start + 1); result.push(x); srr(data, start + 1, result, results); putBackX(data, wereX, x); result.pop(x); } return; } function clone(data) { var copy = []; for (var i = 0; i < data.length; i++) { copy.push(data[i].slice(0)); } return copy; } function srrs(data) { var results = []; var norm = clone(data); normalize(norm); srr(norm, 0, [], results); return results; } function gen() { var results = srrs(data); var str = "Počet řešení: " + results.length + "<br>"; for (var r = 0; r < results.length; r++) { str += results[r].join(" ") + "<br>"; } document.getElementById('result').innerHTML = str; }
J
ava
S
cript
Autoformát
jQuery
Umístění JS
window.onload
</head>
</body>