像转发抽奖这种,三个物品,10 万人参与转发,每个人转发次数决定获奖权重,中过的人还不能再中,有什么快的解决思路吗?
最简单就是抽三次,每次权重随机,然后剔除中的人,再进行下一次权重随机,这个时间复杂度好像挺高
求大神们帮忙指点下。
1
zro 2020-12-15 02:22:39 +08:00
啊,居然有放会真中奖的抽奖?
|
2
murmur 2020-12-15 08:09:29 +08:00
新浪微博有人员画像的,你在使用的时候就决定你有没有资格抽奖了,上次王思聪抽 100 个人几乎都是女的就很说明问题了
|
3
nutting 2020-12-15 08:56:18 +08:00
你是说纯算法上,还是怎么作弊,这不一样
|
4
ignor 2020-12-15 09:15:28 +08:00 via Android
这复杂度高在哪? 1w 个物品给 1 亿人抽都是秒算吧
|
5
kop1989 2020-12-15 09:16:08 +08:00 1
不理解为什么还“权重随机”
用一个表专门用来抽奖。每次触发转发的时候,都记录一条包含此用户唯一值的记录。 然后三次获取 随机数( 0~表的 length )搞定。(如果三次当中,有重复的,就再抽,直到出现三个不重复的结果) |
6
docxs OP 找到了,A-RES. A-ExpJ
|