国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:39:12
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php實現的微信紅包算法,以實例形式分析了拼手氣紅包的相關隨機算法技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了php實現的微信紅包算法。分享給大家供大家參考。具體如下:

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

1. 普通紅包

2. 拼手氣紅包

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

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

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

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

 

  1. // $bonus_total 紅包總金額 
  2. // $bonus_count 紅包個數 
  3. // $bonus_type 紅包類型 1=拼手氣紅包 0=普通紅包 
  4. function randBonus($bonus_total=0, $bonus_count=3, $bonus_type=1){ 
  5. $bonus_items = array(); // 將要瓜分的結果 
  6. $bonus_balance = $bonus_total; // 每次分完之后的余額 
  7. $bonus_avg = number_format($bonus_total/$bonus_count, 2); // 平均每個紅包多少錢 
  8. $i = 0; 
  9. while($i<$bonus_count){ 
  10. if($i<$bonus_count-1){ 
  11. $rand = $bonus_type?(rand(1, $bonus_balance*100-1)/100):$bonus_avg; // 根據紅包類型計算當前紅包的金額 
  12. $bonus_items[] = $rand; 
  13. $bonus_balance -= $rand; 
  14. }else
  15. $bonus_items[] = $bonus_balance; // 最后一個紅包直接承包最后所有的金額,保證發出的總金額正確 
  16. $i++; 
  17. return $bonus_items; 

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

 

 
  1. // 發3個拼手氣紅包,總金額是100元 
  2. $bonus_items = randBonus(100, 3, 1); 
  3. // 查看生成的紅包 
  4. var_dump($bonus_items); 
  5. // 校驗總金額是不是正確,看看微信有沒有坑我們的錢 
  6. var_dump(array_sum($bonus_items)); 

另一個使用數組實現的版本,原理差不多:

 

 
  1. function sendRandBonus($total=0, $count=3, $type=1){ 
  2. if($type==1){ 
  3. $input = range(0.01, $total, 0.01); 
  4. if($count>1){ 
  5. $rand_keys = (array) array_rand($input, $count-1); 
  6. $last = 0; 
  7. foreach($rand_keys as $i=>$key){ 
  8. $current = $input[$key]-$last; 
  9. $items[] = $current; 
  10. $last = $input[$key]; 
  11. $items[] = $total-array_sum($items); 
  12. }else
  13. $avg = number_format($total/$count, 2); 
  14. $i = 0; 
  15. while($i<$count){ 
  16. $items[] = $i<$count-1?$avg:($total-array_sum($items)); 
  17. $i++; 
  18. return $items; 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五峰| 富顺县| 松阳县| 永嘉县| 莫力| 鄄城县| 宣汉县| 尤溪县| 隆化县| 连州市| 河津市| 海盐县| 亳州市| 舞钢市| 仁怀市| 花垣县| 高要市| 正镶白旗| 灵石县| 吴堡县| 石棉县| 霸州市| 错那县| 玛沁县| 即墨市| 财经| 云梦县| 隆化县| 肇州县| 十堰市| 玛纳斯县| 酒泉市| 赤城县| 商洛市| 重庆市| 新野县| 福海县| 会昌县| 沙坪坝区| 灵寿县| 瓦房店市|