CDE
This commit is contained in:
parent
518da4a923
commit
764da6cbbb
6144 changed files with 83610 additions and 11 deletions
18
Task/Combinations/JavaScript/combinations-1.js
Normal file
18
Task/Combinations/JavaScript/combinations-1.js
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
function bitprint(u) {
|
||||
var s="";
|
||||
for (var n=0; u; ++n, u>>=1)
|
||||
if (u&1) s+=n+" ";
|
||||
return s;
|
||||
}
|
||||
function bitcount(u) {
|
||||
for (var n=0; u; ++n, u=u&(u-1));
|
||||
return n;
|
||||
}
|
||||
function comb(c,n) {
|
||||
var s=[];
|
||||
for (var u=0; u<1<<n; u++)
|
||||
if (bitcount(u)==c)
|
||||
s.push(bitprint(u))
|
||||
return s.sort();
|
||||
}
|
||||
comb(3,5)
|
||||
25
Task/Combinations/JavaScript/combinations-2.js
Normal file
25
Task/Combinations/JavaScript/combinations-2.js
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
function combinations(arr, k){
|
||||
var i,
|
||||
subI,
|
||||
ret = [],
|
||||
sub,
|
||||
next;
|
||||
for(i = 0; i < arr.length; i++){
|
||||
if(k === 1){
|
||||
ret.push( [ arr[i] ] );
|
||||
}else{
|
||||
sub = combinations(arr.slice(i+1, arr.length), k-1);
|
||||
for(subI = 0; subI < sub.length; subI++ ){
|
||||
next = sub[subI];
|
||||
next.unshift(arr[i]);
|
||||
ret.push( next );
|
||||
}
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
combinations([0,1,2,3,4], 3);
|
||||
// produces: [[0, 1, 2], [0, 1, 3], [0, 1, 4], [0, 2, 3], [0, 2, 4], [0, 3, 4], [1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]
|
||||
|
||||
combinations(["Crosby", "Stills", "Nash", "Young"], 3);
|
||||
// produces: [["Crosby", "Stills", "Nash"], ["Crosby", "Stills", "Young"], ["Crosby", "Nash", "Young"], ["Stills", "Nash", "Young"]]
|
||||
Loading…
Add table
Add a link
Reference in a new issue