php實現的微信紅包演算法分析(非官方)

2022-10-06 10:06:08 字數 947 閱讀 9934

最近一直在微信群裡體驗紅包功能,紅包型別有兩種:

1. 普通紅包

2. 拼手氣紅包

普通紅包就不用多解析了,大鍋飯原理,平分。

拼手氣紅包講的是手氣(運氣),有人可以搶到很多,有人搶的少得可憐,當然也不是先搶就一定多,說到底了就是隨機。

想了想,自己寫寫看,能不能實現類似的功能(不敢說是演算法)。

// $bonus_total 紅包總金額

// $程式設計客棧bonus_count 紅包個數

// $bonus_type 紅包型別 1=拼手氣紅包 0=普通紅包

function randbonus($bonus_total=0, $bonus_count=3, $bonus_type=1)else

$i++程式設計客棧;

} return $bonus_items;

}好吧,我們現在來體驗一下

// 發3個拼手氣紅包,總金額是100元

$bonus_items = randbonus(100, 3, 1);

// 檢視生成的紅包

var_dump($bonus_items);

// 校驗總金額是不是正確,看看微信有沒有坑我們的錢

var_dump(array_sum($bonus_items));

另一程式設計客棧個使用陣列實現的版本,原理差不多:

function sendrandbonus($total=0, $count=3, $type=1)

}$items = $total-array_sum($items);

}else{

$**g = number_format($total/$count, 2);

$i = 0;

while($i

本文標題: php實現的微信紅包演算法分析(非官方)

本文位址: /wangluo/php/131688.html

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

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

微信搶紅包演算法實現

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

php仿微信紅包分配演算法的實現方法

紅包分配 把一定金額隨機分配給指定人數 param int money 用於分配的金額 param int num 分配人數 function randommoney money,num echo 餘額 remain.已使用 use.分配 r程式設計客棧emain echo randommoney ...