>  기사  >  백엔드 개발  >  PHP 배열을 섞은 후 확률을 통해 요소의 모양 순서를 제어하는 ​​방법은 무엇입니까?

PHP 배열을 섞은 후 확률을 통해 요소의 모양 순서를 제어하는 ​​방법은 무엇입니까?

WBOY
WBOY원래의
2024-05-02 18:51:02975검색

확률에 따라 배열 요소의 표시 순서를 제어하는 ​​PHP의 방법: 배열 순서를 방해합니다. shuffle() 함수를 사용합니다. 확률 할당: array_map()을 사용하여 각 요소에 확률(0-1)을 할당합니다. 가중치 배열 정렬: 확률이 높은 순서로 배열을 정렬합니다(확률이 높은 요소부터 먼저 정렬). 요소 추출: 정렬된 배열에서 요소를 순서대로 추출합니다. 즉, 확률 제어 순서에 따라 배열을 스크램블합니다.

PHP 배열을 섞은 후 확률을 통해 요소의 모양 순서를 제어하는 ​​방법은 무엇입니까?

PHP에서 확률 제어를 사용하여 배열 요소의 표시 순서를 방해합니다.

배열 요소의 순서를 방해하는 것은 무작위 추첨, 게임 메커니즘 등과 같은 많은 개발 시나리오에서 일반적인 요구 사항입니다. 배열을 섞은 후 확률에 따라 요소의 순서를 제어해야 하는 경우 PHP는 적절한 함수와 메서드를 제공합니다.

준비

먼저 스크램블하려는 요소가 포함된 배열을 준비합니다. 예:

$array = [1, 2, 3, 4, 5];

배열을 섞으려면 shuffle() 함수를 사용하세요shuffle() 函数打乱数组

shuffle() 函数可以打乱数组中元素的顺序。

shuffle($array);

使用概率控制元素出现的顺序

使用 array_map()

shuffle() 함수는 배열의 요소 순서를 섞을 수 있습니다.

$probabilities = [0.2, 0.3, 0.4, 0.5, 0.6];
$weightedArray = array_map(function ($element, $probability) {
    return [$element, $probability];
}, $array, $probabilities);

확률을 사용하여 요소가 나타나는 순서를 제어하세요.

array_map() 메서드를 사용하여 배열 요소를 순회하고 각 요소에 확률을 할당하세요. 확률 값의 범위는 0에서 1까지입니다. 여기서 0은 요소가 전혀 나타나지 않음을 의미하고 1은 해당 요소가 항상 나타남을 의미합니다.

usort($weightedArray, function ($a, $b) {
    return $b[1] <=> $a[1];
});

가중 배열 정렬

가중치 배열을 정렬하면 확률이 더 높은 요소가 배열의 시작 부분에 있게 됩니다.

$reorderedArray = [];
foreach ($weightedArray as $element) {
    $reorderedArray[] = $element[0];
}

요소 추출

    이제 정렬된 가중치 배열에서 요소를 순서대로 추출하여 확률 제어 순서의 스크램블 배열을 얻습니다.
  • $items = ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'];
    $probabilities = [0.2, 0.3, 0.4, 0.5, 0.6];
    
    shuffle($items);
    $weightedItems = array_map(function ($item, $probability) {
        return [$item, $probability];
    }, $items, $probabilities);
    
    usort($weightedItems, function ($a, $b) {
        return $b[1] <=> $a[1];
    });
    
    $drawnItems = [];
    for ($i = 0; $i < 3; $i++) {
        $drawnItems[] = $weightedItems[$i][0];
    }
    
    print_r($drawnItems);
  • 실용 사례
  • 5개 항목이 포함된 배열에서 3개 항목을 무작위로 선택해야 하는 게임이 있다고 가정해 보겠습니다. 각 아이템 등장 확률은
  • 아이템 1: 20%
아이템 2: 30%

아이템 3: 40%

아이템 4: 50%🎜🎜아이템 5: 60%🎜🎜🎜를 누르시면 됩니다. 위 단계에서는 다음 코드를 구현합니다. 🎜rrreee🎜위 코드를 실행하면 확률 제어 순서에 따라 3개의 항목이 그려집니다. 🎜

위 내용은 PHP 배열을 섞은 후 확률을 통해 요소의 모양 순서를 제어하는 ​​방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.