首页 > 问答 > 正文
100元给10个人发红包,红包大小随机,每个人都能得到红包
欧阳克2017-07-05 10:39:39
1
2
3
4
5
6
7
8
<code class="js">rpAmount = 100
<code
class
=
"js"
>rpAmount = 100
ppCount = 10
rpResult=[]
rpRnds = []
rpRndSum = 0
for(let i=0;i<ppCount;i++){let rnd = Math.random();rpRndSum+=rnd;rpRnds.push(rnd);}
for
(let i=0;i<ppCount;i++){let rnd = Math.random();rpRndSum+=rnd;rpRnds.push(rnd);}
rpRnds.forEach((rnd)=>{rpResult.push(rpAmount*rnd/rpRndSum)})
console.log('rpResult',{rpResult,sum:rpResult.reduce((acc,val)=>{return acc+val})})</code>
console.log(
'rpResult'
,{rpResult,sum:rpResult.reduce((acc,val)=>{
return
acc+val})})</code>
核心思想:随机数直接确定的权重, 而非金额.
世界只因有你2017-07-05 10:39:39
可以看看这个/q/10...
曾经蜡笔没有小新2017-07-05 10:39:39
思路:使用random函数每次随机分配 每次得出的红包值大于0.01小于剩余金额-剩余人数*0.01 最后一个人获得剩余全部就行