js把40元随机分给10个人,每个人不大于6元

Divide(10,40,6);
  
function  Divide(p,m,a){
     /*传入人数,总金额,单人上限*/
     var  arr=[];
     nm=m*100;
     na=a*100;
     /*乘100,便于运算*/
     l=p;
     /*每次遍历后剩余人数*/
     for (i=0;i<p-1;i++){
         l--;
         arr[i]=roll(nm,l);
         /*传入剩余金额及人数*/
         nm-=arr[i];
         /*剩余金额*/
     }
     arr[p-1]=nm;
     /*最后一个人不用分*/
     if (arr[p-1]>na){
         return  Divide(p,m,a);
     }
     /*最后一个人如超过上限,重新分*/
     return  arr.map( function (v,i,arr){
         return  v=v/100;
     });
     /*分好了,每个数重新除以100,输出结果*/
  
     /*定义随机函数,传入剩余金钱和人数*/
     function  roll(o,l){
         var  b=o-l;
         /*每个人至少分1分钱*/
         var  Max=Math.min(na,b);
         return  Math.ceil(Math.random()*Max);
     }
}

猜你喜欢

转载自blog.csdn.net/beichen3997/article/details/80781581