이 기사는 PHP의 빨간 봉투 열기 알고리즘에 대한 간략한 분석을 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 필요한 모든 사람에게 도움이 되기를 바랍니다.
PHP 빨간색 봉투 분할 알고리즘
코드는 다음과 같습니다.
/** * 拆分红包 * @param SendRedPackageRequest $request * @return array */ protected function spitMoney(SendRedPackageRequest $request) { $result = []; $reamingMoney = $request->money; for ($i = $request->count; $i >= 1; $i--) { if ($i === 1) { $result[] = round($reamingMoney, 2); $reamingMoney = 0; } else { $average = round(bcdiv($reamingMoney, $i), 2); //平均值 $amount = round(mt_rand(1, $average * 199) / 100, 2); $reamingMoney = doubleval(bcsub($reamingMoney, $amount)); $result[] = round($amount, 2); } } return $result; }
논리는 비교적 간단합니다. 분할할 금액과 분할 횟수를 전달합니다.
먼저 분할할 숫자를 반복하고 다음인지 확인합니다. 마지막이라면 남은 돈을 모두 넣어주세요
그렇지 않다면 남은 금액(첫 번째 주기의 남은 금액 = 총 금액)을 남은 횟수로 나누어 평균을 구하세요. 무작위로 가장 작은 0.01과 평균 * 2를 취하고 남은 금액을 업데이트하면 됩니다.
알고리즘은 WeChat 빨간 봉투 분할 알고리즘을 시뮬레이션하지만 이는 미리 계산되어 저장되며 WeChat은 매번 동적으로 계산합니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP 빨간 봉투 열기 알고리즘에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!