26 lines
584 B
JavaScript
26 lines
584 B
JavaScript
function knuthShuffle(arr) {
|
|
var rand, temp, i;
|
|
|
|
for (i = arr.length - 1; i > 0; i -= 1) {
|
|
rand = Math.floor((i + 1) * Math.random());//get random between zero and i (inclusive)
|
|
temp = arr[rand];
|
|
arr[rand] = arr[i]; //swap i (last element) with random element.
|
|
arr[i] = temp;
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
var res = {
|
|
'1,2,3': 0, '1,3,2': 0,
|
|
'2,1,3': 0, '2,3,1': 0,
|
|
'3,1,2': 0, '3,2,1': 0
|
|
};
|
|
|
|
for (var i = 0; i < 100000; i++) {
|
|
res[knuthShuffle([1,2,3]).join(',')] += 1;
|
|
}
|
|
|
|
for (var key in res) {
|
|
print(key + "\t" + res[key]);
|
|
}
|