網站制作NEWS
隨機紅包金額如何決定的
從工程角度來說,紅包分配算法需要簡單粗暴的實現。
有些人的算法過于復雜,第幾個人領取都要面面俱到的計算,考慮因素太多,工程實現上真的沒必要。
其實只需要按照如下框架即可:
1. 發(fā)紅包時,按照設計的快速隨機算法,將紅包分好若干份。
2. 按照設計的評估算法,對得到的紅包分配進行校驗。
3. 如果校驗不通過,如貧富差距過大,則重復隨機分配。
4. 如果若干次重復,如5次,則停止重復,就按照當前分配。
5. 再有用戶請求紅包,直接隊列化請求,再從紅包序列中取出對應編號紅包。
上述方案的優(yōu)勢是:
1. 只需“一次”計算。
隨機算法選擇簡單粗暴的即可,系統按照校驗策略對其評價,不滿足則有限次重復,直到滿足或次數太多為止。
2. 此后就只有讀取。
后續(xù)操作完全是讀取緩存,無需密集計算。
那么是不是還有更簡單粗暴的方案呢?還是有的,那就是偽隨機序列查表法。
百萬千萬級別的紅包請求,如果每次都按照真隨機來計算,仍然會有不小的計算壓力。
索性預先計算得到若干偽隨機分配方案,調用時只需要隨機選擇一個即可。
舉例來說,有人的紅包是10元分配給5人,系統預先存有多種分配方案,如1,1,2,3,3,或1,1,2,2,4,請求時隨機選取一個方案即可。
當然,各種組合未必能窮盡,但是只需要讓用戶在有限次操作中覺得這是隨機就夠了。
擴展資料
微信紅包是騰訊旗下產品微信于2014年1月27日推出的一款應用,功能上可以實現發(fā)“紅包”、查收發(fā)記錄和提現。
2014年4月14日,“安卓手機用戶只要用微信掃描身邊出現的紅色二維碼,通過騰訊應用寶成功安裝其他應用軟件,即可領取微信紅包。
2019年2月10日,微信官方發(fā)布2019年春節(jié)數據報告,除夕到初五,8.23億人次收發(fā)微信紅包。
設計簡單
在“微信紅包”這個功能的設計上,遵循了簡單的原則。發(fā)送方通過“新年紅包”公眾號,選擇發(fā)送紅包的數量和金額,以及祝福的話語,通過“微信支付”進行支付,就可以發(fā)送給好友;接收方則在打開后獲得相應收益,只需要將儲蓄卡與微信關聯,就可以在一個工作日后提現。2014年1月27日前,用戶在搶紅包之前,要先寫上祝福,然后才可以搶。在這之后,已經改為先搶紅包再發(fā)送祝福的過程。
多重隨機標簽