js实现1,2,3,5数字按照概率生成

js按照配置的概率生成,概率规则如下:

1------------50%

2------------30%

3------------15%

5------------5%

简单的代码

function myRandom() {

var rand = Math.random();

if (rand < .5) return 1;

if (rand < .8) return 2;

if (rand < .95) return 3;

return 5;

}

复杂点的

function prizeRand(oArr) {

var sum = 0; // 总和

var rand = 0; // 每次循环产生的随机数

var result = 0; // 返回的对象的key

console.log(oArr);

// 计算总和

for (var i in oArr) {

sum += oArr[i][0];

}

// 思路就是如果设置的数落在随机数内,则返回,否则减去本次的数

for (var i in oArr) {

rand = Math.floor(Math.random()*sum + 1);

if (oArr[i][0] >= rand) {

result = oArr[i][0];

break;

} else {

sum -= oArr[i][0];

}

}

return result;

}

var oArr = {'5':[5, 'Mac'], '3':[15, 'iPhone'], '2':[30, 'iPad'], '1':[50, 'iWatch']};

console.log(prizeRand(oArr));

大家可以根据需要选择,建议查看的上一篇文章。

以上是 js实现1,2,3,5数字按照概率生成 的全部内容, 来源链接: utcz.com/z/357736.html

回到顶部