码迷,mamicode.com
首页 > 编程语言 > 详细

红包算法设计(转)

时间:2015-04-18 15:55:29      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!