设计发红包的API ( 微信红包的算法是怎样的?)

 

让你设计一个微信发红包的API,你会怎么设计,不能有人领到的红包里面没钱,红包数值精确到分。

我的想法:

如果是随机红包,根据发红包的人输入的钱数,默认精确到分,也就是0.01元。

最小的不可再分的单元就是0.01元。

如果红包的分数是10份,那么就把红包比如50元,那么可以生成1-4991的随机整数。

极端案例,一个人分得49.91元,剩余九个人每人分得0.01元。

第一个人分完,剩下的按照这个规则继续。

微信红包的规则

微信红包算法 - 云+社区 - 腾讯云

过年很多人会发微信的红包,但是为毛很多人说自己得不到最佳,因此作者写了一个微信红包发送的算法。

首先科普一下,微信红包的 规则 为:

红包金额的区间为 0.01 - 平均值的2倍

该规则为 微信团队公布的算法 ,读者可自行上网查找相关信息。

这也就是说,假设给10个人发送100元的红包,那么:

第一个人得到金额的区间为[0.01,20]

假设 前三个人 领到的红包为50元,那么此时红包还剩下 7个人 没有领取红包,红包还剩下 50元 ,那么下一个人可以得到的最大金额为:

(100-50)/(10-3)*2=14.29

第四个人得到的金额的区间为[0.01,14.29]

以此类推,最终可以将红包领完。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

trigger333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值