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