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

首頁 > 學院 > 邏輯算法 > 正文

php實現的隨機紅包算法

2020-03-22 18:41:44
字體:
來源:轉載
供稿:網友
本文主要介紹了php實現的微信紅包算法,以實例形式分析了拼手氣紅包的相關隨機算法技巧。希望對大家有所幫助。

具體如下:

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

1. 普通紅包

2. 拼手氣紅包

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

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

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


// $bonus_total 紅包總金額// $bonus_count 紅包個數// $bonus_type 紅包類型 1=拼手氣紅包 0=普通紅包function randBonus($bonus_total=0, $bonus_count=3, $bonus_type=1){  $bonus_items  = array(); // 將要瓜分的結果  $bonus_balance = $bonus_total; // 每次分完之后的余額  $bonus_avg   = number_format($bonus_total/$bonus_count, 2); // 平均每個紅包多少錢  $i       = 0;  while($i<$bonus_count){    if($i<$bonus_count-1){      $rand      = $bonus_type?(rand(1, $bonus_balance*100-1)/100):$bonus_avg; // 根據紅包類型計算當前紅包的金額      $bonus_items[] = $rand;      $bonus_balance -= $rand;    }else{      $bonus_items[] = $bonus_balance; // 最后一個紅包直接承包最后所有的金額,保證發出的總金額正確    }    $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){  if($type==1){    $input     = range(0.01, $total, 0.01);    if($count>1){      $rand_keys = (array) array_rand($input, $count-1);      $last    = 0;      foreach($rand_keys as $i=>$key){        $html' target='_blank'>current  = $input[$key]-$last;        $items[]  = $current;        $last    = $input[$key];      }    }    $items[]    = $total-array_sum($items);  }else{    $avg      = number_format($total/$count, 2);    $i       = 0;    while($i<$count){      $items[]  = $i<$count-1?$avg:($total-array_sum($items));      $i++;    }  }  return $items;}

相關推薦:

基于php 隨機數的深入理解

PHP實現迪菲赫爾曼密鑰交換(Diffie–Hellman)算法

PHP生成迷宮及自動尋路算法詳解

以上就是php實現的隨機紅包算法的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 恩施市| 应城市| 梅州市| 浑源县| 渝中区| 晴隆县| 聊城市| 昭觉县| 石城县| 逊克县| 台中县| 威宁| 临夏县| 玉山县| 枣阳市| 大同市| 宣化县| 东光县| 衡山县| 买车| 博湖县| 咸宁市| 波密县| 遵化市| 中山市| 祥云县| 隆林| 闻喜县| 清新县| 布拖县| 桑植县| 赤城县| 阳曲县| 竹北市| 新化县| 宁波市| 大姚县| 二连浩特市| 肇源县| 潜江市| 社旗县|