今天刚好用Lua实现了一个伪随机红包,可能可能随机的值并没有太好,如果有更好的想法可以评论说出来大家讨论一下;这个随机红包的的要求是给一个指定的数额,和一个最大领取金额和最小领取金额,然后指定给多少个人随机领取;
思路:
(1)第一步:每次的随机数范围通过
总金额 - (已被领取金额+剩下所有人的最低金额)
进行计算后,放大倍数来拿到一个范围更大的随机数再除掉放大倍数
(2)第二步:进行计算每个人能领取到的随机金额,然后若是没有分配到的将给一个最低值
(3)第三步:若是剩下的金额还比领取的人数还多则先平均后,平均后若还有剩下则把剩下的都给第一个领取的人
-- 随机数函数
function rank( min,max,num,sum )
local sub = 0
local res = {
}
for i=num,1,-1 do
local randMax = sum -