微信搶紅包算法詳解 + Java語言實現


 

搶微信紅包如何搶到最多,參見文章-清華博士畢嘯天分析

 

 

微信紅包內部的算法規則,每個人當前能搶到的金額,服從一個0.01到當前剩余均值兩倍的左開右閉區間的均勻分布

 

舉例說明: 假設有100元錢,分給10個人。那么第一個人獲得紅包大小怎么計算呢?100/10 = 10元。這是期望值。從0.01到20的區間中(其中20=10乘以2)隨機抽取一個數,就是第一個人獲得紅包的大小;
                   假設第一個人獲得了8元,那么剩下的92元平均分給9個人,這九個人平均獲得紅包大小為10.22元,那么第二個人的紅包大小均勻分布於0.01元到20.44元的區間中;
                   依次類推。算法保證最后一個人至少抽到0.01元

 

基於以上算法思想,這里用Java語言進行封裝實現(原創,轉載請注明出處

 

1. 我們的紅包類封裝以下屬性

2. 紅包數據的有效性簡單校驗的方式;

 

兩個原子方法(明細數據和最后的計算最佳)

 

 紅包算法,其實就這一點點代碼是真正的計算紅包金額

 

 對外暴露被調用的方法

 

 main()方法調用簡單測試

 

 運行測試結果: 我是不是小氣了點 15個人分20塊

 

若想直接要該源代碼,請評論留下郵箱.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM