이번에는 PHP의 빨간 봉투 금액 분할 알고리즘 구현 사례에 대해 자세히 설명하겠습니다. PHP의 빨간색 봉투 금액 분할 알고리즘 구현에 대한 주의 사항은 무엇입니까? 다음은 실제 사례입니다. 봐.
<?php // 新年红包金额拆分试玩 class CBonus { public $bonus;//红包 public $bonus_num;//红包个数 public $bonus_money;//红包总金额 public $money_single_max;//单个红包限额 public function construct(){ $this->bonus_num = 10; $this->bonus_money = 200; $this->money_single_max = 60; } private function randomFloat($min = 0, $max = 1) { $mt_rand = mt_rand(); $mt_getrandmax = mt_getrandmax(); echo 'mt_rand=' . $mt_rand . ', mt_getrandmax=' . $mt_getrandmax . '<hr/>'; return $min + $mt_rand / $mt_getrandmax * ($max - $min); } //计算 public function compute() { $this->bonus = array(); $bonus_money_temp = $this->bonus_money; $money_single_max = $this->money_single_max; $i = 1; while($i < $this->bonus_num) { if ($money_single_max > $bonus_money_temp) { $money_single_max = floatval(sprintf("%01.2f", $bonus_money_temp / 2));//剩余金额不够分时,把剩余金额的一半作为备用金 } $bonus_money_rad = $this->randomFloat(0.01, $money_single_max);//一个红包随机金额 最小的1分钱 $bonus_money_rad = floatval(sprintf("%01.2f", $bonus_money_rad)); $bonus_money_temp = $bonus_money_temp - $bonus_money_rad ;//待分配的总剩余金额 $bonus_money_temp = floatval(sprintf("%01.2f", $bonus_money_temp)); $this->bonus[] = $bonus_money_rad; //echo $bonus_money_rad . ',' . $bonus_money_temp . '<hr/>'; $i++; } $this->bonus[] = $bonus_money_temp;//分配剩余金额给最后一个红包 } //打印 public function output(){ $total = 0; foreach($this->bonus as $k => $v) { echo '红包' . ($k+1) . '=' . $v . '<br/>'; $total += $v; } echo '红包总金额:'.$total; } } $CBonus = new CBonus(); $CBonus->compute(); $CBonus->output(); ?>
데모 결과:
Red 패킷 1=12.36
Red 패킷 2=24.37
Red 패킷 3=42.71
Red 패킷 4=36.92
Red 패킷 5=25.84
Red 패킷 6=23.17
Red 패킷 7 =15.92
빨간 봉투 8= 1.35
빨간 봉투 9=7.75
빨간 봉투 10=9.61
빨간 봉투 총 수량: 200
빨간 봉투 1=24.59
빨간 봉투 2=17.66
빨간 봉투 3=29.67
빨간 봉투 4=32.34
빨간 봉투 5=12.67
빨간 봉투 6=37.15
빨간 봉투 7 =17.41
빨간 봉투 8=15.23
빨간 봉투 9=6.13
빨간 봉투 10=7.15
빨간 봉투 총 수량: 200
가지고 계실 거라 믿습니다 이 기사의 사례를 읽은 후 방법을 익혔습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 도서:
PHP가 파일 MIME 유형을 얻는 단계에 대한 자세한 설명
위 내용은 PHP에서 구현된 Red Envelope 금액 분할 알고리즘의 사례에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!