发一个随机红包,40块钱给10个人。每个人最多6块钱。怎么分?用javascript
发一个随机红包,40块钱给10个人。每个人最多6块钱。怎么分?用javascript怎么写啊? |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
Divide(10,40,6);functionDivide(p,m,a){ /*传入人数,总金额,单人上限*/ vararr=[]; nm=m*100; na=a*100; /*乘100,便于运算*/ l=p; /*每次遍历后剩余人数*/ for(i=0;ina){ returnDivide(p,m,a); } /*最后一个人如超过上限,重新分*/ returnarr.map(function(v,i,arr){ returnv=v/100; }); /*分好了,每个数重新除以100,输出结果*/ /*定义随机函数,传入剩余金钱和人数*/ functionroll(o,l){ varb=o-l; /*每个人至少分1分钱*/ varMax=Math.min(na,b); returnMath.ceil(Math.random()*Max); }} |
|
|
|
|
仔细想了一下,其实需要增加的逻辑判断就是剩余的人数*6要大于剩余金额。否则就需要重新计算本次发的红包。但是这个就不是真随机了。。。太不公平了。。。 |
|
|
|
|