PHP 빨간 봉투 열기 알고리즘에 대한 간략한 분석

藏色散人
풀어 주다: 2023-04-10 07:58:02
앞으로
4594명이 탐색했습니다.

이 기사는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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