70%的时间运行JavaScript函数,从函数数组中随机选择
我已经看到了允许每次以相同的机会从at数组中随机选择一个JavaScript函数(例如,如果总共有两个函数,则每次执行每个函数的可能性为50%) 如何编写一个函数来说明从函数数组中随机选择的每个函数的执行概率百分比如何进行加权随机化???70%的时间运行JavaScript函数,从函数数组中随机选择,javascript,jquery,arrays,random,Javascript,Jquery,Arrays,Random,我已经看到了允许每次以相同的机会从at数组中随机选择一个JavaScript函数(例如,如果总共有两个函数,则每次执行每个函数的可能性为50%) 如何编写一个函数来说明从函数数组中随机选择的每个函数的执行概率百分比如何进行加权随机化??? function randomFrom(array) { return array[Math.floor(Math.random() * array.length)]; } var contentWrapper = function (target,t
function randomFrom(array) {
return array[Math.floor(Math.random() * array.length)];
}
var contentWrapper = function (target,type,articleId) {
// list type ads
if (type == 'list') {
function randomListData() {
var func = randomFrom([
function () {
fnNameA10(target, 'list');
},
function () {
fnNameB20(target, 'list', articleId);
}
]);
(func)();
}
randomListData();
// content type ads
} else if (type == 'content') {
function randomContentData() {
var func = randomFrom([
function () {
fnNameA10(target, 'content');
},
function () {
fnNameB20(target, 'content', articleId);
}
]);
(func)();
}
randomContentAd();
}
};
var funcs=[
{概率:20,fn:function(){console.log(“20%”)},
{概率:10,fn:function(){console.log(“10%”)},
{概率:70,fn:function(){console.log(“70%”)}
];
var合计=0;
var n=Math.random();
对于(var i=0;i
var funcs=[
{概率:20,fn:function(){console.log(“20%”)},
{概率:10,fn:function(){console.log(“10%”)},
{概率:70,fn:function(){console.log(“70%”)}
];
var合计=0;
var n=Math.random();
对于(var i=0;i是您的答案:
var rand = function(min, max) {
return Math.random() * (max - min) + min;
};
var getRandomItem = function(list, weight) {
var total_weight = weight.reduce(function (prev, cur, i, arr) {
return prev + cur;
});
var random_num = rand(0, total_weight);
var weight_sum = 0;
//console.log(random_num)
for (var i = 0; i < list.length; i++) {
weight_sum += weight[i];
weight_sum = +weight_sum.toFixed(2);
if (random_num <= weight_sum) {
return list[i];
}
}
// end of function
};
var list = ['javascript', 'php', 'ruby', 'python'];
var weight = [0.5, 0.2, 0.2, 0.1];
var random_item = getRandomItem(list, weight);
var rand=函数(最小值、最大值){
返回Math.random()*(max-min)+min;
};
var getRandomItem=函数(列表、权重){
var总重量=重量减少(功能(上、下、i、arr){
返回上一个+当前;
});
var random_num=兰德(0,总重量);
变量权重总和=0;
//console.log(随机数)
对于(变量i=0;i
var rand = function(min, max) {
return Math.random() * (max - min) + min;
};
var getRandomItem = function(list, weight) {
var total_weight = weight.reduce(function (prev, cur, i, arr) {
return prev + cur;
});
var random_num = rand(0, total_weight);
var weight_sum = 0;
//console.log(random_num)
for (var i = 0; i < list.length; i++) {
weight_sum += weight[i];
weight_sum = +weight_sum.toFixed(2);
if (random_num <= weight_sum) {
return list[i];
}
}
// end of function
};
var list = ['javascript', 'php', 'ruby', 'python'];
var weight = [0.5, 0.2, 0.2, 0.1];
var random_item = getRandomItem(list, weight);
var rand=函数(最小值、最大值){
返回Math.random()*(max-min)+min;
};
var getRandomItem=函数(列表、权重){
var总重量=重量减少(功能(上、下、i、arr){
返回上一个+当前;
});
var random_num=兰德(0,总重量);
变量权重总和=0;
//console.log(随机数)
对于(变量i=0;i
if(random_num)您的意思是函数应该接受{function:percentage}
作为输入?…请讲师查看答案键?您是否尝试进行加权随机化?您是在问如何确定函数在同等权重下被调用的概率,还是在问如何加权函数被调用的概率?@Steve请参见以下示例:您的意思是函数应该采用在{function:percentage}
作为输入?…通过让你的讲师查看答案键?你是在尝试加权随机化吗?你是在问如何确定函数在同等权重下被调用的概率,还是在问如何加权函数被调用的概率?@Steve举个例子:我喜欢你最初的设置sPaz。@Emmental呃,我不知道你的答案已经被接受了。:P这里,请接受我的投票…@sPaz,公平地说,你在Emmentaler之前几秒钟(在评论中)提供了一个有效的解决方案,我答应如果你提交了一个,我会接受你的答案。再次感谢。:)我认为这是公平的。我借用了他的开始:-)我喜欢你原来的设置sPaz。@Emmentaler我不知道你的答案已经被接受了。:P这里,请接受我的投票…@sPaz,公平地说,你在Emmentaler之前几秒钟(在评论中)提供了一个有效的解决方案,我答应如果你提交了答案,我会接受你的答案。再次感谢。:)我认为这是公平的。我借用了他的开始:-)