python实现微信发红包

第一种,单独给某个好友发红包:0 < 金额 <= 200,金额支持两位小数

第二种,群红包,有以下三种类型:

1) 拼手气红包:1 <= 红包个数 <= 当前群聊人数,0 < 总金额 <= 200, 金额支持两位小数

2) 普通红包:1 <= 红包个数 <= 当前群聊人数,0 < 单个金额 <= 200, 金额支持两位小数

3) 专属红包:发给群聊中特定的某个人,0 < 金额 <= 200, 金额支持两位小数

我们要写的是拼手气红包的算法,先来看下业务上的场景,如下图所示:

输入:红包个数N、总金额S

输出:随机生成的N个红包金额值

其中输出需要满足这三个条件:N个红包金额值具备随机性、N个红包金额相加的和=总金额S、金额支持两位小数

我的思路是:

在for循环中使用random函数随机生成一个金额值,将生成的金额值存放到一个列表中,因为每次生成的金额值都必须要小于可用的总金额,所以我们需要在每次随机生成一个金额值后,就用总金额减去已经生成的金额值的和,计算出剩下的金额,所以每次生成的随机数的范围应该满足:0.01 <= 随机金额值 < 总金额-已经生成的金额之和,循环N-1次后,最后一个红包金额值用减法计算

完整代码如下:

运行结果如下:

第一种,单独给某个好友发红包:0 < 金额 <= 200,金额支持两位小数 第二种,群红包,有以下三种类型: 1) 拼手气红包:1 <= 红包个数 <= 当前群聊人数,0 < 总金额 <= 200, 金额支持两位小数 2) 普通红包:1 <= 红包个数 <= 当前群聊人数,0 < 单个金额 <= 200, 金额支持两位小数 3) 专属红包:发给群聊中特定的某个人,0 < 金额 <= 200, 金额支持两位小数 我们要写的是拼手气红包的算法,先来看下业务上的场景,如下图所示: 输入:红包个数N、总金额S 输出:随机生成的N个红包金额值 其中输出需要满足这三个条件:N个红包金额值具备随机性、N个红包金额相加的和=总金额S、金额支持两位小数 我的思路是: 在for循环中使用random函数随机生成一个金额值,将生成的金额值存放到一个列表中,因为每次生成的金额值都必须要小于可用的总金额,所以我们需要在每次随机生成一个金额值后,就用总金额减去已经生成的金额值的和,计算出剩下的金额,所以每次生成的随机数的范围应该满足:0.01 <= 随机金额值 < 总金额-已经生成的金额之和,循环N-1次后,最后一个红包金额值用减法计算 完整代码如下: 运行结果如下:
经验分享 程序员 微信小程序 职场和发展