> 백엔드 개발 > PHP 튜토리얼 > PHP를 사용하여 WeChat 빨간 봉투 금액을 분할하는 알고리즘 정보

PHP를 사용하여 WeChat 빨간 봉투 금액을 분할하는 알고리즘 정보

不言
풀어 주다: 2023-04-01 14:14:02
원래의
2959명이 탐색했습니다.

이 글은 WeChat 빨간 봉투 금액 분할 시험을 구현하기 위한 PHP의 알고리즘 예제를 주로 소개합니다. 이제 내용이 꽤 좋아서 참고용으로 제공하겠습니다.

이 기사에서는 WeChat 빨간 봉투의 양을 나누는 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 &#39;mt_rand=&#39; . $mt_rand . &#39;, mt_getrandmax=&#39; . $mt_getrandmax . &#39;<hr/>&#39;;
    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 . &#39;,&#39; . $bonus_money_temp . &#39;<hr/>&#39;;
      $i++;
    }
    $this->bonus[] = $bonus_money_temp;//分配剩余金额给最后一个红包
  }
  //打印
  public function output(){
    $total = 0;
    foreach($this->bonus as $k => $v)
    {
      echo &#39;红包&#39; . ($k+1) . &#39;=&#39; . $v . &#39;<br/>&#39;;
      $total += $v;
    }
    echo &#39;红包总金额:&#39;.$total;
  }
}

$CBonus = new CBonus();
$CBonus->compute();
$CBonus->output();
?>
로그인 후 복사

데모 결과를 살펴보세요. :

빨간 봉투 1=12.36
빨간 봉투 2=24.37
Red 패킷 3=42.71
Red 패킷 4=36.92
Red 패킷 5=25.84
Red 패킷 6=23.17
Red 패킷 7=15.92
Red Pack 외 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
Red Packet 6=37.15
Red Packet 7=17.41
Red Packet 8=15.23
Red Packet 9=6.13
Red Pack 10=7.15
빨간 봉투 총 수량: 200

위 내용은 전체 내용입니다. 이 글이 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용을 보시려면 PHP 중국어 홈페이지를 주목해주세요!

관련 추천:

PHP를 사용하여 빠른 결제 기능을 구현하는 방법

위 내용은 PHP를 사용하여 WeChat 빨간 봉투 금액을 분할하는 알고리즘 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿