현재 위치: > 최신 기사 목록> PHP의 예제 Wechat Red Envelope 양 분할 알고리즘 | 임의의 빨간 봉투 금액 할당 방법

PHP의 예제 Wechat Red Envelope 양 분할 알고리즘 | 임의의 빨간 봉투 금액 할당 방법

gitbox 2025-07-27

알고리즘 예제

WeChat 빨간 봉투의 분할 양은 일반적인 문제입니다. 이 기사는 PHP 언어를 통해 분할되는 빨간 봉투 금액의 알고리즘 예제를 구현하여 개발자가 빨간 봉투 금액의 임의 할당을 더 잘 이해할 수 있도록 도와줍니다.

함수를 만듭니다

먼저, 우리는 빨간 봉투의 양을 분할하기 위해 함수를 만들어야합니다. 함수의 매개 변수는 빨간 봉투 양과 빨간 봉투 번호입니다.

 
function divideAmount($amount, $num) {
    // TODO: 빨간 봉투 금액 분할 알고리즘을 구현하십시오
}

알고리즘 아이디어

다음으로, 빨간 봉투 금액 분할에 대한 알고리즘 아이디어를 분석 해 봅시다.

빨간 봉투의 양이 위안이고 빨간 봉투의 수가 n이라고 가정하면, 각 빨간 봉투의 최대량은 A/N 위안이고 최소 금액은 0.01 위안입니다.

우리는 먼저 빨간 봉투의 초기 양으로 0에서 a 사이의 n-1 랜덤 숫자를 무작위로 생성 할 수 있습니다. 그런 다음 나머지 금액을 마지막 빨간 봉투에 할당하십시오.

알고리즘 구현

이제 우리는 빨간 봉투 금액 분할 알고리즘을 구현하기 시작합니다.

 
function divideAmount($amount, $num) {
    $remainAmount = $amount; // 나머지 금액
    $remainNum = $num; // 나머지 빨간 봉투 번호
    $result = array(); // 분할 결과
    for ($i = 0; $i < $num - 1; $i++) {
        $maxAmount = $remainAmount / $remainNum * 2; // 최대 금액
        $randAmount = mt_rand(1, $maxAmount * 100) / 100; // 무작위로 생성 된 금액,소수점 이하 두 자리를 유지하십시오
        $remainAmount -= $randAmount; // 更新나머지 금액
        $remainNum--; // 更新나머지 빨간 봉투 번호
        $result[] = $randAmount; // 결과 배열에 금액을 추가합니다
    }
    $result[] = $remainAmount; // 将나머지 금액添加到结果数组
    return $result;
}

알고리즘 설명

먼저 두 가지 변수를 정의해야하며, $ STAINAMOUNT는 나머지 금액을 나타내고 $ LESTNUM은 나머지 빨간색 봉투 번호를 나타냅니다.

루프에서 먼저 최대 $ $ maxamount를 계산 한 다음 MT_Rand 함수를 사용하여 1과 $ maxamount 사이의 $ randamount 금액을 무작위로 생성합니다. 다음으로 나머지 금액과 나머지 레드 엔벨로프 번호를 업데이트 한 다음 결과 배열에 $ randamount를 추가합니다.

마지막으로, 우리는 결과 배열에 나머지 금액을 추가하고 결과 배열을 반환합니다.

샘플 실행

이 알고리즘의 작동 효과를 테스트하겠습니다.

 
$amount = 10; // 빨간 봉투 금액
$num = 5; // 빨간 봉투 수
$result = divideAmount($amount, $num);
foreach ($result as $amount) {
    echo $amount . "원\n";
}

위의 코드를 실행하면 출력 결과는 다음과 같습니다.

 
1.07원
2.48원
2.28원
2.42원
1.75원

적색 봉투 양은 5 개의 다른 양으로 성공적으로 분할되었음을 알 수 있습니다.

요약

이 기사는 PHP 언어를 통해 분할되는 Wechat Red Envelope 양의 알고리즘 예제를 구현합니다.

알고리즘 아이디어와 구현 세부 사항을 분석함으로써 빨간 봉투 금액 분할 프로세스를 명확하게 이해할 수 있습니다.

Wechat Red Envelopes와 관련된 기능을 개발하고 있다면이 기사의 알고리즘 예제에서 배울 수 있기를 바랍니다.