标签:
js版(来源http://q.cnblogs.com/q/70893/)
var m = [],
money = 100,
num = 15,
min = 2,
max = 15;
//每个人先把最小金额拿到手
for(var i = 0; i < 15; i++){
m.push(2);
}
money = money - ( num * min);
while(money > 0){
//在0-14之间随机
var idx = Math.floor(Math.random() * max);//此处表示0-14
if(m[idx] < max){
m[idx] += 1;
money -= 1;
}
}
console.log(m);
该算法避免出现负数的情况,并且体现了良好的编程习惯,算法复杂度不高,与扫雷算法中随机布雷相似,,同样是让index随机
例如
function initmine(width,height,m)
{ var basic=[];//原始数组
var sum=width*height;//总的格子数
for(var x=0;x<sum; x++)
{
basic[x]=x;
}
for(var i=0;i<m;i++)
{
var rn=Math.floor(Math.random()*(basic.length));
minepostArray.push(basic[rn]);
basic.splice(rn,1);//避免随机数产生重复的
console.log(minepostArray[i]);
}
}
标签:
原文地址:http://www.cnblogs.com/wenyan/p/4437455.html