有一個能生成1-5的隨機函數,在它的基礎上,寫一個能生成1-7的隨機函數
var f5 = function() {
return Math.ceil(Math.random() * 5);
};
var test = function(fn) {
var count = 10000;
var dict = {};
for (; count--;) {
var num = fn();
dict[num] = dict[num] ? dict[num] + 1 : 1;
}
console.log(dict);
};
var f7 = function() {
var arr = [];
var arr2 = [];
var count = 7;
for (var i = 0; i < count; i++) {
arr.push(i+1);
}
while (arr.length != 1) {
var dict = {};
var max = -1;
for (var i = 0; i < arr.length; i++) {
var rnd = f5();
if (rnd> max) {
max = rnd;
}
dict[rnd] = dict[rnd] || [];
dict[rnd].push(arr[i]);
}
arr = dict[max];
}
return arr[0];
};
test(f7);
思想是,讓1-7的7個數字“打架”,得分高的進入下一輪,直到決出勝者