이 글에서는 주로 PHP에서 구현된 빨간 봉투 기능을 주로 코드 형식으로 공유합니다. 저는 빨간 봉투를 처음 작성하는 사람이고 빨간 봉투에 대해 잘 모르기 때문에 모든 분들께 도움이 되기를 바랍니다.
for ($i=1; $i < $p; ++$i) { $s2 = ($sum - ($p - $i) * 0.01)/($p - $i); //echo $s2;die; $money = rand(1,$s2*100); $money = number_format($money/100,2,'.',','); $sum = $sum - $money; $wamp[$i] = $money; } //format_number(要转换的浮点数,要分隔的符号) echo "<hr/>"; echo "<pre class="brush:php;toolbar:false">"; print_r($wamp); echo "<pre class="brush:php;toolbar:false">"; } //echo 2;
기본적으로 빨간 봉투 기능을 구현할 수 있습니다. 주로 아이디어에 대해 이야기합니다.
파티를 축하하기 위해 빨간 봉투를 보내고 싶은 동급생 그룹이 50명 있습니다.
우선, 모두가 빨간 봉투를 받아야 하고, 모든 사람이 빨간 봉투를 받을 확률은 기본적으로 동일합니다
그러면 각 사람이 빨간 봉투를 받을 확률 = (현재 빨간 봉투의 양 - (현재 빨간 봉투를 받지 못한 사람의 수) * 최소값 빨간 봉투를 받은 사람의 금액) / 현재 빨간 봉투를 받지 못한 사람의 수
$safe_total 모든 사람이 빨간 봉투를 받을 확률 $total 현재 빨간 봉투의 금액 $min 빨간색의 최소 금액 봉투를 받는 사람
그러면 공식은 다음과 같습니다. $safe_total = ($total - ($num - $i) * $min) / ($num - $i)
코드는 고유하지 않습니다. 중요한 것은 생각
다음은 참조 코드입니다
function getRedGift($total, $num = 10) { $min = 0.01; $wamp = array(); $returnData = array(); for ($i = 1; $i < $num; ++$i) { $safe_total = ($total - ($num - $i) * $min) / ($num - $i); //红包金额的最大值 为了是大部分个人获得的红包金额一定 if ($safe_total < 0) break; $money = @mt_rand($min * 100, $safe_total * 100) / 100;//随机产生一个红包金额 $total = $total - $money;//剩余红包总额 $wamp[$i] = round($money, 2);//保留两位有效数字 } $wamp[$i] = round($total, 2); $returnData['MoneySum'] = $wamp; $returnData['newTotal'] = array_sum($wamp); return $returnData; } //测试 $data = getRedGift(100, 10); echo "<pre class="brush:php;toolbar:false">"; print_r($data); echo "<pre class="brush:php;toolbar:false">";
관련 권장 사항:
PHP 개발 WeChat 현금 빨간 봉투 기능 코드 공유
위 내용은 PHP는 빨간 봉투 함수 코드를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!