有没有绝对均衡的红包算法?

2017-03-22 18:06:56 +08:00
 a1310747
最近看到个疑似微信红包的算法
public static double getRandomMoney(LeftMoneyPackage _leftMoneyPackage) {
// remainSize 剩余的红包数量
// remainMoney 剩余的钱
if (_leftMoneyPackage.remainSize == 1) {
_leftMoneyPackage.remainSize--;
return (double) Math.round(_leftMoneyPackage.remainMoney * 100) / 100;
}
Random r = new Random();
double min = 0.01; //
double max = _leftMoneyPackage.remainMoney / _leftMoneyPackage.remainSize * 2;
double money = r.nextDouble() * max;
money = money <= min ? 0.01: money;
money = Math.floor(money * 100) / 100;
_leftMoneyPackage.remainSize--;
_leftMoneyPackage.remainMoney -= money;
return money;
}
}
代码很简洁 也能实现红包的功能,但是我发现第一个抢红包的会有个最大封顶值。。。有没有其他算法来实现均衡呢
1834 次点击
所在节点    程序员
2 条回复
a1310747
2017-03-22 18:14:55 +08:00
刚发的贴显示居然是一天前 是被降权了吗

SpicyCat
2017-03-22 19:14:12 +08:00
平分。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/349531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX