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와 관련된 기능을 개발하고 있다면이 기사의 알고리즘 예제에서 배울 수 있기를 바랍니다.