V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qiayue
V2EX  ›  问与答

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

  •  
  •   qiayue · 2014-11-04 17:27:38 +08:00 · 5218 次点击
    这是一个创建于 3658 天前的主题,其中的信息可能已经有所发展或是发生改变。
    每天有 5 元红包 1000 个,10 元红包 500 个,20 元红包 250 个, 100 元红包 50 个。
    每个人每天最多可以领取 3 次红包,每次红包可能没中奖也可能是以上 4 中红包中的一种。
    每天需要把所有共 1800 个红包全部派完。

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