求教关于微信领红包的逻辑问题
微信领红包
需求:一天固定总金额1300块钱,每个红包价格是1-100元,每天不管多少人来领,都要领到钱
如果人数固定的话还好办。但是现在不知道人数,我就不知道该怎么写了 按照时间预算?万一某个点领红包的人很多又怎么办?求大佬赐教
关于 LearnKu
我在想100元相当于10000分,一天有86400秒,微信红包最小是一分,所以问题来了,如果每秒都有人领怎么办 :joy:
领取的时候来个排队 :smile:
不管多少人,都要给到钱?微信红包我记得最低金额是1元,每天1300元,那就是每天保证最多有1300人领到红包
可以这样,先预计流量,如果流量很多,那每天前1300名,每人1元搞定。如果不多,差多少直接在群里说,我们帮你分了 :smiley:
这个需求不是很矛盾吗?
请问第1301个人来领,到底该给不给? :see_no_evil:
总金额 1300 RMB,每份 1-100 RMB
如果要把 1300 RMB 领完:
要达到红包随机需要解决的问题:
通过以上分析,问题1、2解决方案:
万一某个点领红包的人很多又怎么办?
注意:
根据每天的流量,先提前分好呗。不可能实现不管多少人领都有钱的 死了这条心吧 ,钱和人都是整数
有个漏洞,老板没说每天的 1300 元要都发光,但确规定了最小和最大的金额,最多有 1300 个人来领取,为了看起来好看一些,所以你就按 1290 人提前计算好,每个人随机的红包金额(大概都是1.xx元),来人就按顺序发放。
如果没有领完,就剩下了呗,还给老板节省活动经费了。
后续再根据前一天的用户数量,动态预测当天的领取人数即可。
不是所有需求技术都可以解决的!!!有一些需求技术无法解决,只能在需求端和运营端去解决。
需求无法实现的,赶紧给怼回去吧,哪有既限制总金额,每人有最低额度,又不限制人数的,你这个需求解决方法就只能是干需求,要么加钱,要么限制人数!!!
@zhangbobo 说得好 程序员不应该看到需求 就想着这个该怎么做 而是先判断这个需求逻辑上是否可行 业务上是否可行
1300元 微信金钱单位最小0.01元 最多13万人领取
你可以设想这是一个砍价操作,设立每次最低领取金额1
每次访问验证是否只剩下最低金额1,也就是最后一个红包,不是再随机处理一个金额出去
但是现在你这需求逻辑就有问题
设立每天1300的总金额,还要每个人进来都领到最少1的金额,那如果有一万个人怎么能够分
我们换个思维来考虑这个问题,那么这个问题老板要表达的想法就是,每天有人来,来的人都有红包拿,红包的额度根据人数分配多少,这个时候,我们就想到了奖池开奖的形式,那么问题就迎刃而解了,抢红包的的时候给个提示,根据人数预计能得到多少红包。
分红包这个简单,一天有60x60x24=86400秒。一天有1300元总额,每人最少分1元,最多分100元,那就简单了。第一个用户需要等待【(86400-今天已消耗秒数) / 剩余总额】秒数,这样用户无论多少,一天1300都够分的,如果第一天有100万人,那就等待的时间无限延长。红包总额每天只加1300元,这样等的话,世界灭亡也够分。等待显示你排在多少人后面领取红包,需要多少秒才能领到,用户可以离开页面,当用户第二天领取的时候显示当前排在多少位后面,无法领取。
@meooo 楼主说了要当场知道金额