>  기사  >  백엔드 개발  >  재귀적 깊이 우선 검색을 사용하여 PHP의 1D 배열에서 모든 조합을 생성하는 방법은 무엇입니까?

재귀적 깊이 우선 검색을 사용하여 PHP의 1D 배열에서 모든 조합을 생성하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-30 18:32:02691검색

How to Generate All Combinations from a 1D Array in PHP Using a Recursive Depth-First Search?

1차원 배열의 모든 조합 얻기

1차원 배열에서 얻을 수 있는 모든 조합을 모으는 작업은 재귀적 방법. 이 접근 방식은 각 요소 배열의 무결성을 유지하면서 가능한 모든 조합을 탐색하는 깊이 우선 검색 접근 방식을 포함합니다.

앞서 언급한 작업을 효과적으로 처리하는 다음 PHP 코드를 고려하세요.

<code class="php"><?php

$array = array('Alpha', 'Beta', 'Gamma', 'Sigma');

function depth_picker($arr, $temp_string, &$collect) {
    if ($temp_string != "") 
        $collect []= $temp_string;

    for ($i=0, $iMax = sizeof($arr); $i < $iMax; $i++) {
        $arrcopy = $arr;
        $elem = array_splice($arrcopy, $i, 1); // removes and returns the i'th element
        if (sizeof($arrcopy) > 0) {
            depth_picker($arrcopy, $temp_string ." " . $elem[0], $collect);
        } else {
            $collect []= $temp_string. " " . $elem[0];
        }   
    }   
}

$collect = array();
depth_picker($array, "", $collect);
print_r($collect);

?></code>

이 구현은 입력 배열을 반복적으로 탐색하여 각 요소와 전체 조합 세트에 대한 잠재적 영향을 분석하는 방식으로 작동합니다. 요소가 조합에 포함되면 추가 탐색을 위해 해당 요소가 없는 새 배열이 생성됩니다. 이 프로세스는 모든 요소를 ​​검사하고 전체 조합 스펙트럼이 캡처될 때까지 계속됩니다.

이 접근 방식을 사용하면 제공된 1D 배열에서 가능한 모든 조합을 성공적으로 검색하여 원래 시퀀스를 모두 유지해야 하는 요구 사항을 충족할 수 있습니다. 독특한 편곡이 특징입니다.

위 내용은 재귀적 깊이 우선 검색을 사용하여 PHP의 1D 배열에서 모든 조합을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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