亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP實現(xiàn)的隨機(jī)紅包算法示例

 更新時間:2017年08月14日 11:59:20   作者:myD  
這篇文章主要介紹了PHP實現(xiàn)的隨機(jī)紅包算法,結(jié)合實例形式分析了php隨機(jī)紅包算法的原理、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了PHP實現(xiàn)的隨機(jī)紅包算法。分享給大家供大家參考,具體如下:

一、整體設(shè)計

算法有很多種, 可以自行選擇, 主要的"架構(gòu)" 是這樣的, 用redis decr()命令去限流, 用mysql去記錄各種需要的數(shù)據(jù)

二、紅包算法

簡便起見, 紅包金額用整數(shù)表示, 假設(shè)每個紅包里邊有x個糖豆, 每個人最少一個豆

第一種: 每個紅包的最大金額是: (剩余金額/剩余紅包數(shù))*2, 需要開始的時候預(yù)先分配給每個人一個豆

function randBean($total_bean, $total_packet)
{
  $min_bean = 1;
  $max_bean = 5000;
  $range = 2;
  $total_bean = $total_bean - $total_packet * $min_bean; //每個人預(yù)留一個最小值
  $list = [];
  $min = 1;
  while(count($list) < $total_packet){
    $max = floor($total_bean / $total_packet) * $range;
    $bean = rand($min, $max);
    if ($bean <= $max_bean - 1) {
      $list[] = $bean;
      $total_bean -= $bean;
    }
  }
  $list[] = $total_bean;//剩余的金豆作為最后一個紅包
  //合并
  foreach ($list as $k => $v) {
    $list[$k] += $min_bean;
  }
  return $list;
}

多次統(tǒng)計

第二種, 對其簡單擴(kuò)展一下, 每個紅包的最大金額是: (剩余金額/剩余紅包數(shù))*3; 但是要求每次最少發(fā)2個紅包

第三種, 線段法, 隨機(jī)生成幾個數(shù)字, 將一個直線分成幾段, 每段的長度(這個波動比較大, 不是很平均, 如果限制了每個紅包的大小, 會比較麻煩)

function abc ($total_bean, $total_packet)
{
  $min = 1;
  $max = $total_bean -1;
  $list = [];
  $maxLength = $total_packet - 1;
  while(count($list) < $maxLength) {
    $rand = mt_rand($min, $max);
    empty($list[$rand]) && ($list[$rand] = $rand);
  }
  $list[0] = 0; //第一個
  $list[$total_bean] = $total_bean; //最后一個
  sort($list); //不再保留索引
  $beans = [];
  for ($j=1; $j<=$total_packet; $j++) {
    $beans[] = $list[$j] - $list[$j-1];
  }
  // return $beans;
  echo '<pre>'; print_r($beans); echo array_sum($beans);
}
abc(100000, 3);

第四種:

因為每人最少1個豆, 那么每次隨機(jī)生成豆數(shù)的時候要預(yù)留 剩余人數(shù)*1個豆;

去掉這些必須剩余的豆數(shù)后, 以剩下的豆數(shù)的平均值為最大值進(jìn)行隨機(jī)生成本次豆數(shù)

PS:這里再為大家提供兩款功能類似的在線工具供大家參考:

在線隨機(jī)數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu

在線隨機(jī)字符/隨機(jī)密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

  • 針對PHP開發(fā)安全問題的相關(guān)總結(jié)

    針對PHP開發(fā)安全問題的相關(guān)總結(jié)

    今天小編就為大家分享一篇關(guān)于針對PHP開發(fā)安全問題的相關(guān)總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • php中使用base HTTP驗證的方法

    php中使用base HTTP驗證的方法

    這篇文章主要介紹了php中使用base HTTP驗證的方法,涉及預(yù)定義服務(wù)器變量$_SERVER及header方法的相關(guān)使用技巧,需要的朋友可以參考下
    2015-04-04
  • php常用hash加密函數(shù)

    php常用hash加密函數(shù)

    這篇文章主要介紹了php常用hash加密函數(shù),以實例形式詳細(xì)分析了PHP的hash加密函數(shù)用法,代碼中備有詳盡的注釋,便于理解,需要的朋友可以參考下
    2014-11-11
  • php去除二維數(shù)組的重復(fù)項方法

    php去除二維數(shù)組的重復(fù)項方法

    這篇文章主要介紹了php去除二維數(shù)組的重復(fù)項方法,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 淺談PHP無限極分類原理

    淺談PHP無限極分類原理

    這篇文章主要介紹了PHP無限極分類原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • PHP詳解ASCII碼對照表與字符轉(zhuǎn)換

    PHP詳解ASCII碼對照表與字符轉(zhuǎn)換

    PHP基礎(chǔ)篇詳解ASCII碼對照表與字符轉(zhuǎn)換,討論ASCII碼對照表圖與字符轉(zhuǎn)換為十進(jìn)制、八進(jìn)制、十六進(jìn)制和HTML的方法
    2011-12-12
  • PHP curl_setopt()函數(shù)實例代碼與參數(shù)分析

    PHP curl_setopt()函數(shù)實例代碼與參數(shù)分析

    curl_setopt()函數(shù)將為一個CURL會話設(shè)置選項。option參數(shù)是你想要的設(shè)置,value是這個選項給定的值。
    2011-06-06
  • PHP實現(xiàn)表單提交數(shù)據(jù)的驗證處理功能【防SQL注入和XSS攻擊等】

    PHP實現(xiàn)表單提交數(shù)據(jù)的驗證處理功能【防SQL注入和XSS攻擊等】

    這篇文章主要介紹了PHP實現(xiàn)表單提交數(shù)據(jù)的驗證處理功能,可實現(xiàn)防SQL注入和XSS攻擊等,涉及php字符處理、編碼轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • PHP截取指定圖片大小的方法

    PHP截取指定圖片大小的方法

    這篇文章主要介紹了PHP截取指定圖片大小的方法,可實現(xiàn)對指定圖片的縮放與截取功能,是非常實用的技巧,需要的朋友可以參考下
    2014-12-12
  • php中替換字符串函數(shù)strtr()和str_repalce()的用法與區(qū)別

    php中替換字符串函數(shù)strtr()和str_repalce()的用法與區(qū)別

    在php中替換函數(shù)主要有strtr(),str_repalce()這兩個函數(shù),下面這篇文中主要給大家介紹下這兩者之間的區(qū)別和用法,文中通過示例代碼介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11

最新評論