求派红包算法:每天需要派发出去 N 个红包,但我不知道每天有多少人访问

2014-11-04 17:27:38 +08:00
 qiayue
每天有 5 元红包 1000 个,10 元红包 500 个,20 元红包 250 个, 100 元红包 50 个。
每个人每天最多可以领取 3 次红包,每次红包可能没中奖也可能是以上 4 中红包中的一种。
每天需要把所有共 1800 个红包全部派完。

现在的问题是,我不知道每一天有多少人来领取红包,也不知道他会领多少个(这个其实也可以认为每个人都会把 3 次机会用完),所以要怎么设置红包的概率呢?
5124 次点击
所在节点    问与答
12 条回复
em70
2014-11-04 17:46:01 +08:00
需要花几天时间了解访问量,然后才能制定策略,否则无法保证全部发完
jyz19880823
2014-11-04 17:48:14 +08:00
因为你不知道有多少用户会玩这个,
1.设置一个较高的概率,送完之后概率变为0.
2.设置一个相对靠谱的概率,根据已经送出去的红包数和时间,调整概率。
walleL
2014-11-04 18:43:37 +08:00
这还真的是个问题。。。 好奇以前看到的类似的抽奖是怎么做的, 没抽完的私吞了?
gno23x
2014-11-04 18:52:23 +08:00
- 将一天划分多个时间段,规划好每个时间段发多少个5元红包、10元红包。
- 一个时间段的红包没发完,累计到下一个时间段去,适当增大下一个时间段的中奖概率。
- 一个时间段的红包太早发完了,那就适当降低下一个时间段的中奖概率。
- 保证每个时间段不超发。
qiayue
2014-11-04 19:00:53 +08:00
@gno23x 你这个方法应可行,只要把时间粒度划分的足够好,就应该能够派完
canesten
2014-11-04 19:12:52 +08:00
设计成隔天开奖的彩票就完了
qiayue
2014-11-04 20:12:13 +08:00
@canesten 客户要求实时出结果,所以没办法
nooper
2014-11-04 21:21:29 +08:00
根据时间粒度进行分配,将时间段分配成等概率,随机事件分布。并对时间进行采样处理,保证随机性。
andrewhxism
2014-11-04 22:32:15 +08:00
用random函数,5元红包发完为止,剩下红包的留给自己。
gamexg
2014-11-04 22:37:38 +08:00
如果人数比较多可以保证夜间也有人抽奖直接暴力的 总奖数/24 得到每小时可开的奖数,然后直接为每个奖生成随机数来作为中奖时间,只有在中奖时间后面第一个抽奖的才中奖,简单快捷。缺陷是你得保证夜间也有人来抽奖。
pagxir
2014-11-04 23:03:09 +08:00
就是你个什么破算法,充了7次,毛都没中。
20150517
2014-11-05 00:53:41 +08:00
参考facebook的pacer算法,我公司一直用的,做的好的话,要机器学习前两天规律,每天train前一天,才知道怎么分配

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

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

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

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

© 2021 V2EX