红包算法的简单实现:

例如:100元,10个人分,平均每人10元。发红包付款后,系统就开始分份儿。

第一份:系统由0.01~10元之间随机生成一个数,作为这一份的钱数,记作 x1

第二份:剩下的钱(100-x1),系统由 0.01~(100-x1)/(10-1)随机一个数,作为这份的钱数,记作 x2

第三份:剩下的钱(100-x1-x2),系统由 0.01~(100-x1-x2)/(10-2)随机一个数,作为这份的钱数,记作 x3

第n份:剩下的钱(100-x1-x2-...-xn),系统由0~(100-x1-x2-...-xn-1)/(10-n)随机一个数,作为这个份的钱数,设为xn

当用户进来拿红包的时候,系统由0~9之间随机一个数(共10个红包),随机到几,就取第几份红包(起始值为0,范围为0~9共10份),然后将这个数存到list里。当之后的用户抽到相同的随机数时,则将这个数+1,如遇相同再+1(类似于hash的),直至list满,红包发完。