PHP實現微信紅包演算法和微信紅包的架構設計簡介

2022-09-23 01:39:09 字數 680 閱讀 5477

使用php發紅包,當我們輸入紅包數量和總金額後,php會根據這兩個值進行隨機分配每個金額,保證每個人都能領取到乙個紅包,每個紅包金額不等,就是要求紅包金額要有差異,所有紅包金額總額應該等於總金額。

設定總金額為10元,有n個人隨機領取:

n=1 第乙個

則紅包金額=x元;

n=2 第二個

為保證第二個紅包可以正常發出,第乙個紅包金額=0.01至9.99之間的某個隨機數。

第二個紅包=10-第乙個紅包金額;

n=3 第三個

紅包1=0.01至9.99之間的某個隨機數

紅包2=0.01至(10-紅包1-0.01)的某個隨機數

紅包3=10-紅包1-紅包2

header("

content-type: text/html;charset=utf-8

");//

防止中文亂碼

$total=10;//

總額 $num=8;//

分成8個紅包,支援8人隨機領取

$min=0.01;//

每個人最少能收到0.01元

for ($i=1;$i<$num;$i++)

echo '第

'.$num.'

個紅包:

'.$total.'

元,餘額:0 元

';

微信搶紅包演算法實現

只討論金額隨機的情況,需要滿足規則 所有人搶到金額之和要等於紅包總金額1.每個人至少搶到一分錢1.要保證所有人搶到金額的機率相等方案一 每個人點進來領,金額隨機,隨機的上限是當前剩餘的紅包金額。每次搶到的金額 隨機區間 0,剩餘紅包金額 分析 這樣做的缺陷是越早領越有優勢,因為每次搶到的金額 隨機區...

微信紅包的隨機演算法

演算法 很簡單 基於截尾正態分佈,數額隨機,額度在0.01和剩餘平均值 2之間。實現上述演算法的邏輯主要是 public static bigdecimal getrandommoney redpackage redpackage random r new random bigdecimal min...

php實現微信發紅包功能

微信商家後台 現金紅包開發 生成簽名,引數 生成簽名的引數和是否編碼 function create qianming arr,urlencode buff.k.v.if strlen buff 0 return reqpar 生成隨機字串,預設32位 function create noncest...