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

首頁 > 開發 > PHP > 正文

php實現微信紅包的程序算法

2024-05-04 21:49:46
字體:
來源:轉載
供稿:網友

下面來看一個我們在生活中常碰到的一個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//開源軟件:Vevb.com 
  15.             $bonus_items[]  = $bonus_balance// 最后一個紅包直接承包最后所有的金額,保證發出的總金額正確 
  16.         } 
  17.         $i++; 
  18.     } 
  19.     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  = (arrayarray_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.             } 
  12.         } 
  13.         $items[]        = $total-array_sum($items); 
  14.     }else
  15.         $avg            = number_format($total/$count, 2); 
  16.         $i              = 0; 
  17.         while($i<$count){ 
  18.             $items[]    = $i<$count-1?$avg:($total-array_sum($items)); 
  19.             $i++; 
  20.         } 
  21.     } 
  22.     return $items

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 称多县| 岳西县| 泗水县| 桓台县| 贞丰县| 临沂市| 治多县| 沭阳县| 和硕县| 昌平区| 涿州市| 宜兰县| 吴堡县| 巧家县| 广安市| 靖宇县| 二连浩特市| 陵川县| 佛冈县| 清水河县| 乡城县| 襄汾县| 鹰潭市| 黄陵县| 娱乐| 沽源县| 房产| 金秀| 顺义区| 九龙城区| 玛纳斯县| 大邑县| 于都县| 广西| 华安县| 尉犁县| 榕江县| 惠州市| 昂仁县| 浪卡子县| 梁平县|