Home  >  Q&A  >  body text

javascript - Use js to implement red envelope distribution problem

100 yuan is given to 10 people in red envelopes. The size of the red envelope is random and everyone can get a red envelope

滿天的星座滿天的星座2662 days ago789

reply all(3)I'll reply

  • 欧阳克

    欧阳克2017-07-05 10:39:39

    rpAmount = 100
    ppCount = 10
    rpResult=[]
    rpRnds = []
    rpRndSum = 0
    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})})

    Core idea:
    The weight is directly determined by the random number, not the amount.

    reply
    0
  • 世界只因有你

    世界只因有你2017-07-05 10:39:39

    You can take a look at this
    /q/10...

    reply
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:39:39

    Idea: Use the random function to randomly allocate each time. The red envelope value obtained each time is greater than 0.01 and less than the remaining amount - the remaining number of people * 0.01. The last person can get all the remaining money

    reply
    0
  • Cancelreply