PHP コードで赤い封筒関数を実装する方法: 1. 幸運の赤い封筒を実現するには、distribute_red_bages メソッドを使用します; 2. 赤い封筒の均等な分布を実現するには、average_red_bages メソッドを使用します; 3. rob_red_bages メソッドを使用して、指定された数の赤い封筒を達成します。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
php コードはどのように動作しますか赤いエンベロープ関数を実装しますか?
PHP 赤いエンベロープ関数コード
以前にこの質問を受けたので、時間があるときにメモしました。最近とても面白いです
まず、赤い封筒を掴む方法を分類してみましょう:
赤い封筒を送る人には、大きく分けて 3 つのカテゴリがあります (他のカテゴリは考えていません)まだ、思いついたら連絡してください~)
1. 幸運の赤い封筒の数は可変です (すべては運に依存します)
2. 幸運の赤い封筒の指定された数(数字は確実、少なくとも1点)
3. 赤い封筒を均等に分けます(数字は1つです) (決めて、全員で均等に分けます) この方が書きやすいですよね?へへ
上記のコード:
<?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)
---->ランダムに合計より小さい最初の数値: n
---->合計金額からこの数値を引きます。 : temp = sum -n
---->temp
---->合計金額が 0
# になるまで上記のメソッドを繰り返します## ---- >ランダムな結果を格納する配列を返すこのメソッドは比較的従来のもので、指定された数の赤い封筒を達成するためにも使用できます。ただし~縁起の良い赤封筒の枚数を指定するという考え方(総額合計、赤い封筒の数num) ---->以下の数字をランダムに数値化sum、配列を生成します---->これらの数値を合計して allsum を取得します ---->sum を allsum で割って、生成されたすべての数値の公倍数を取得します ----> ;配列の各要素に公倍数を掛けて、それぞれの赤いエンベロープの値を取得します。この方法には欠点があります (最終結果は合計よりわずかに大きくなる可能性があります。除算では無理数が発生する可能性があるため、合計よりわずかに小さくなります)おそらくこれです!連絡や修正を歓迎します。 ~~~ 推奨学習: 「
PHP ビデオ チュートリアル 」
以上がPHPコードで赤い封筒関数を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。