Skip to content

Instantly share code, notes, and snippets.

@rje
Last active January 19, 2017 21:30
Show Gist options
  • Save rje/8f079f4325730b0c78349fdf366be002 to your computer and use it in GitHub Desktop.
Save rje/8f079f4325730b0c78349fdf366be002 to your computer and use it in GitHub Desktop.
function factorial(n) {
if(n === 0) {
return 1;
}
return n * factorial(n - 1);
}
function combination_formula(n, r) {
var nfact = factorial(n);
var rfact = factorial(r);
return nfact / (rfact * factorial(n - r));
}
function find_sets(kn, k) {
if(kn % k != 0) {
console.log("kn " + kn + " does not evenly divide into k " + k + ", please pick other numbers");
}
if((kn - k) === 0) {
return 1;
}
return combination_formula(kn, k) * find_sets(kn - k, k);
}
function main() {
console.log("In main");
for(var k = 2; k <= 4; k++) {
for(var n = 1; n <= 3; n++) {
var kn = n * k;
var sets = find_sets(kn, k);
console.log("For " + kn + " bosses and " + k + " sets there are " + sets + " combinations");
}
}
}
main();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment