亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php代碼如何實現紅包功能

發布時間:2021-11-02 10:05:42 來源:億速云 閱讀:266 作者:iii 欄目:編程語言

這篇文章主要介紹“php代碼如何實現紅包功能”,在日常操作中,相信很多人在php代碼如何實現紅包功能問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php代碼如何實現紅包功能”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

php代碼實現紅包功能的方法:1、通過distribute_red_bages方法實現拼手氣紅包;2、通過average_red_bages方法實現均分紅包;3、通過rob_red_bages方法實現規定紅包數。

php代碼如何實現紅包功能

本文操作環境:Windows7系統、PHP7.1版、DELL G3電腦

php代碼怎么實現紅包功能?

PHP 紅包功能代碼

前段時間被問這個問題,最近有空就寫寫啦,還是挺有趣的

首先做下搶紅包方法分類:

對于發紅包的人來說,一共有大致3類(其他的我暫時沒想到,有想到可以聯系我呀~)

一、拼手氣紅包個數不定(完全看運氣)

二、拼手氣紅包規定個數(個數一定,至少一分)

三、平均分紅包(個數一定,大家平分)還是這個好寫是吧!嘿嘿

上代碼:

<?php
var_dump(rob_red_bages(5 , 10));
var_dump(distribute_red_bages(5));
/*
方法主要功能:拼手氣紅包(個數不定)
一個參數
    參數一: 紅包總金額(按分計算)
*/
function distribute_red_bages($sum){
    $sum = $sum*100;
    $i=0;
    while($sum>0){
        $temp = rand(1 , $sum);//紅包值
        $sum -= $temp;
        $arr[$i++] = $temp/100;
    }
    //check($arr);
    return $arr;
}
/*
方法主要功能:均分紅包
兩個參數:
    參數一: 紅包總金額
    參數二: 均分個數
*/
function average_red_bages($sum , $num){
    $res = $sum/$num;
    for($i=0 ; $i<$num ; $i++){
        $arr[$i] = $res;
    }
    //check($arr);
    return $arr;
}
/*
方法主要功能:規定個數的手氣紅包
兩個參數: 
    參數一:紅包總金額
    參數二:紅包個數
    
    計算流程,隨機生成num個數
    求和得到m
    用sum/m 得到每個數需要k
    用隨機數*k
*/
function rob_red_bages($sum , $num){
    $sum = $sum*100;
    for($i=0 ; $i<$num ; $i++){
        $temp = rand(1 , $sum);
        $arr[$i] = $temp;
        $sumall += $temp;
    }
    $k = $sum/$sumall;
    for($i=0 ; $i<sizeof($arr); $i++){
        $arr2[$i] = $arr[$i]*$k/100;        
    }
    return $arr2;
}
/*紅包總額檢測*/
function check($arr){
    foreach($arr as $a){
        $sum += $a;
        echo $a."+";
    }
    
    echo " 0 =".$sum."\n";
}
?>

下面分析下拼手氣紅包吧(平分的就不說了,大家都會):

拼手氣紅包個數不定思路:(總金額:sum)

---->隨機第一個小于sum的數: n

---->總金額減去該數: temp = sum-n

---->隨機一個小于temp的數

---->遞歸上述方法直到總金額為0

---->返回存儲隨機結果的數組

這個方法比較常規,用來實現規定個數的紅包也是可以實現的!不過~

拼手氣紅包規定個數思路(總金額 sum,紅包個數 num )

---->隨機num個小于sum的數,生成數組

---->對這些數求和得到allsum

---->用sum除以allsum得到所有生成數的公倍數

---->數組每個元素與公倍數相乘得到每個紅包的的數值

這個方法有缺點(最終的結果可能會略大于sum,或者略小于sum 因為除法可能出現無理數)

到此,關于“php代碼如何實現紅包功能”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

柘城县| 靖西县| 太保市| 麻江县| 神池县| 来安县| 婺源县| 板桥市| 吴忠市| 麦盖提县| 荔浦县| 甘谷县| 仁化县| 西峡县| 资兴市| 舒兰市| 那曲县| 吉安县| 姚安县| 德钦县| 陇南市| 清丰县| 天柱县| 叶城县| 镇沅| 奉新县| 习水县| 马鞍山市| 阿城市| 靖州| 鄯善县| 永仁县| 临夏县| 砚山县| 梁河县| 和顺县| 克拉玛依市| 仲巴县| 衡山县| 苏州市| 定结县|