Our Mathematical Selection code in Javascript.
Mathematical Selection JavaScript File:
HTML File:
Try it out!
Mathematical Selection JavaScript File:
var words;
var r; // min length of word
var i;
var complete_group = {}, c_index = 0;
function groupSelection(candidates, size) {
words = candidates;
r = size;
i = 0;
recursiveFillUp([]);
return complete_group;
}
// pick elements recursively
function recursiveFillUp(temp) {
var picked_elements = [];
var j = i;
while (j < words.length) {
picked_elements[j] = temp.slice(0);
picked_elements[j].push(words[j]);
// recoil factor
if (i >= words.length) {
i = j;
}
// satisfied yet?
if (picked_elements[j].length == r) {
complete_group[c_index++] = picked_elements[j];
} else if (picked_elements[j].length < r) {
recursiveFillUp(picked_elements[j]);
}
j++;
}
if (picked_elements[--j] !== undefined && picked_elements[j].length == r) {
i++; // keep recoil factor straightened out
}
}
HTML File:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Selection</title>
<script src="Selection.js"></script>
</head>
<body>
<h3>Possible Selections with Repetition</h3>
<!-- This is where the result will be displayed when it is ready.-->
<div id="word_select"></div>
<script>
var result =
groupSelection([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 3);
var print = "", set, count = 0;
for (set in result) {
print += ++count + ": [" + result[set].join(", ") + "]<br/>";
}
document.getElementById("word_select").innerHTML +=
words.join(", ") + " selection " + r + ":<br/><br/>" + print +
"<br/><br/>Number of ways is " + count + ".";
</script>
</body>
</html>
Try it out!
Elegance (0.0)