美文网首页
基于微信随机红包算法

基于微信随机红包算法

作者: CarsonChen | 来源:发表于2019-02-18 11:53 被阅读7次

微信随机红包算法, 前提为知道红包的数量, 红包总金额, (红包最小金额, 0.01)
为防止浮点数计算出现问题,此处会将所有的计算方式扩大100倍进行.

        // 普通算法
        for i in 1..<num {
            // 设置安全红包上限
            let safeTotal = total - (num - i) * min
            // 得出随机红包
            let money = Int(arc4random() % UInt32(safeTotal)) + min
            // 剩余钱数
            total -= money
            let moneyStr = String(format: "%.2f", Float(money) / 100)
            let totalStr = String(format: "%.2f", Float(total) / 100)
            print("第\(i)个红包, 金额:\(moneyStr), 余额:\(totalStr)")
        }
        // 最后一个红包的金额
        print("第\(num)个红包, 金额:\(Float(total) / 100), 余额:0")
    
        
        total = 10000
        num = 10
        min = 1
        sum = 0
        
        print("------------------------------------------")
        
        // 更新算法
        for i in 1..<num {
            // 设置安全红包上限
            let safeTotal = (total - (num - i) * min) / (num - i) // 随机平均上限
            // 得出随机红包
            let money = Int(arc4random() % UInt32(safeTotal)) + min
            // 剩余钱数
            total -= money
            let moneyStr = String(format: "%.2f", Float(money) / 100)
            let totalStr = String(format: "%.2f", Float(total) / 100)
            print("第\(i)个红包, 金额:\(moneyStr), 余额:\(totalStr)")
        }
        // 最后一个红包的金额
        print("第\(num)个红包, 金额:\(Float(total) / 100), 余额:0")
        

未优化前的算法会出现先点击的红包过大的问题,出现抖动,所以在更新算法中,将安全的上限进行调整.


输出结果

相关文章

  • 基于微信随机红包算法

    微信随机红包算法, 前提为知道红包的数量, 红包总金额, (红包最小金额, 0.01)为防止浮点数计算出现问题,此...

  • 微信红包随机算法初探

    本文简书备份地址:微信红包随机算法初探 最近看了一篇文章,讲微信红包随机算法的。感觉很不错,所以自己实现了下,并进...

  • c++代码模拟微信抢红包算法,没人抢得过你!

    算法说明: 微信抢红包基本功能为:提示输入红包总金额和红包份数,保证每个红包的金额随机且不为0,每个红包的金额差距...

  • 红包随机算法Java实现

    需求:红包总金额随机后每份金额:最大值200, 最小值0.01;最大份数100;工具:idea参考:微信红包算法以...

  • 微信红包算法 - OC

    知乎-微信红包算法 一个简单的分配算法:随机分配n次把每次分配的部分减去,在进行随机分配分配过程中,考虑好,分配为...

  • PHP 仿微信红包金额随机

    博主寒冰最近闲来无事。就想研究一下微信红包的金额随机算法。早在微信红包刚出来的时候就研究过。始终不得要领。后来,通...

  • 正态分布

    最近公司产品上线一个类似于微信抢红包功能,需要实现红包金额的随机分配算法。 基本约束: 发放红包时,每个人所能得到...

  • [code snippet]微信随机红包算法实现

    为了保证不会出现领取的红包比0还小的情况,也就是说要保证每个人都能至少领到min_amount大小的红包,所以只对...

  • 类似微信随机红包算法及代码

    接了老板一个需求,做一个类似微信随机红包的功能,具体需求如下: 用户将自己的积分包入红包中,填写积分总数和红包个数...

  • 微信红包算法

    这是我们第二次见面了。 太阳不算热,你撑着伞,疲倦但依旧那么美。 原来你挖了一夜的宝,还仍然和我去看车展。不忍心,...

网友评论

      本文标题:基于微信随机红包算法

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