国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武冈市| 甘泉县| 巴彦淖尔市| 通河县| 沿河| 富川| 永兴县| 夹江县| 钟山县| 平南县| 云龙县| 廉江市| 云阳县| 临安市| 吕梁市| 祁门县| 藁城市| 鹰潭市| 永德县| 偏关县| 泗洪县| 颍上县| 霍山县| 邵东县| 元氏县| 娱乐| 米泉市| 皮山县| 西安市| 栾川县| 驻马店市| 西平县| 礼泉县| 常熟市| 灵台县| 平湖市| 呼玛县| 友谊县| 阿巴嘎旗| 开鲁县| 平山县|