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]);
}
}
时间: 2024-10-17 00:46:40