美文网首页程序员
探究下微信抢红包算法

探究下微信抢红包算法

作者: noyya | 来源:发表于2017-10-25 16:00 被阅读124次

早上看到朋友在晒昨天1024节日福利,5位数红包雨,羡慕感叹之余想探究下微信运气红包的实现。

重要的几个参数:

1.红包总金额 (totalMoney)
2.红包总个数 (totalCount)
3.剩余红包个数(leftCount)
4.剩余红包金额 (leftMoney)
4.当前抢到的红包金额 (money)
4.红包最大值(maxMoney)//为了不至于每个红包之间差距太过悬殊,微信约定这个最大值为当前红包剩余金额 / 剩余红包个数 * 2。
5.红包最小值(minMoney)//微信好像是约定好为0.01。我开始还觉得假如1000元红包,只发5个人的话,也会同样出现0.01的情况,那只能说你运气真是背到家了。(好像印象中是有出现500红包抢到过0.1的)

理论:每次红包抢到的金额范围为 [minMoney, maxMoney],当红包剩余个数为1时,该轮红包金额为当前红包剩余金额。

代码:

self.leftMoney = totalMoney;
self.leftCount = self.totalCount;
self.maxMoney = self.leftMoney / self.leftCount * 2;
if (self.leftCount == 1) {
        self.money = self.leftMoney;
        NSLog(@"===============%f",self.money);
 }else{
        int maxint = [NSString stringWithFormat:@"%f",self.maxMoney * 100].intValue;
        self.money = (1 + arc4random()% (maxint + 1))/100.0;
        NSLog(@"===============%f",self.money);
        self.leftCount = self.leftCount - 1;
        self.leftMoney = leftMoney - self.money;
        self.maxMoney = self.leftMoney / self.leftCount * 2;
    }

理论也比较简单,代码实现也不繁琐,上面写的是伪代码,应该看就可以看懂,现在git也挂了,有需要demo的留邮箱

相关文章

  • 探究下微信抢红包算法

    早上看到朋友在晒昨天1024节日福利,5位数红包雨,羡慕感叹之余想探究下微信运气红包的实现。 重要的几个参数: 1...

  • 微信抢红包(三)

    前言 在 微信抢红包(二) 中,我们已经知道了调用 抢红包时返回的 URL,如下: 继续分析 通过 微信抢红包(...

  • iOS逆向1016-微信抢红包案例(四)

    1016-微信抢红包案例(四) //--------------------逻辑分析 --------// 微信...

  • 一步一步实现iOS微信自动抢红包(非越狱)

    一步一步实现iOS微信自动抢红包(非越狱) 笔记 项目介绍: AutoGetRedEnv 微信自动抢红包动态库 ...

  • js模拟微信抢红包算法的讨论

    春节在家无聊,抢红包的时候想起来,不如自己写一个微信抢红包算法来练练手。本以为是非常简单的一个事情,但真正写下来也...

  • 今天你抢红包了么?

    今天早上一到公司,公司的人都疯了。因为全都在抢红包。 我看了一下一共有以下几种: 一、支付宝抢红包 二、微信抢红包...

  • 今天你抢红包了吗?

    今天,微信群里抢红包的节奏终于缓了下来。 自从有了微信,自从有了微信红包,我对发红包抢红包这件事情就有点紧张。 关...

  • 微信发红包算法探究

    微信发红包,也就是把一个数随机分成n份,n份数额的的值等于总数额。依据以上规则。实现如下1.有最小值 其它随机...

  • Android实现微信自动抢红包

    Android实现微信自动抢红包 简介 本文介绍微信自动抢红包的实现方法,主要实现以下几个功能: 自动拆开屏幕上出...

  • 17.微信五&越狱介绍&消息防撤销

    [TOC] 微信自动抢红包 完善代码 总结 对前面的微信自动抢红包插件进行完善。并有如下流程图: 消息防撤销 这个...

网友评论

    本文标题:探究下微信抢红包算法

    本文链接:https://www.haomeiwen.com/subject/ojvqpxtx.html