微信系統演算法
發布時間: 2023-08-27 16:19:25
❶ 微信紅包的隨機演算法是怎樣實現的
一個紅包要分10份的話,就取10個0.01到0.99的隨機數,按照這10個數分配紅包,來的人隨機給。
當然10個隨機數的和不能超過1,做法可以這樣:
1. 維護一個當前剩餘比例Rest,初始1
2. 維護一個當前剩餘紅包份數Left,初始10
3. 每次算隨機數A的時候,要求A>0,並且A<=Rest*((Left+1)/2),保證隨機數的和在1之內,並且沒有哪個隨機數太大,更新Rest=Rest-A
4. 最後一個隨機數可以不按照3的要求,把所有的給它,也可以留做紅包的剩餘返回給用戶。
熱點內容