> 백엔드 개발 > PHP 튜토리얼 > 문자 세트에서 특정 크기의 모든 조합을 어떻게 생성할 수 있습니까?

문자 세트에서 특정 크기의 모든 조합을 어떻게 생성할 수 있습니까?

Patricia Arquette
풀어 주다: 2024-11-27 12:11:13
원래의
1019명이 탐색했습니다.

How Can I Generate All Combinations of a Specific Size from a Character Set?

문자 집합에서 지정된 크기의 모든 조합 결정

이 문의에서는 문자 집합에서 특정 크기의 모든 잠재적 조합을 생성할 수 있는 알고리즘을 찾습니다. 주어진 문자 집합. 재귀 함수를 사용하여 솔루션을 살펴보겠습니다.

function sampling($chars, $size, $combinations = array()) {
    if (empty($combinations)) {
        $combinations = $chars;
    }
    if ($size == 1) {
        return $combinations;
    }
    $new_combinations = array();
    foreach ($combinations as $combination) {
        foreach ($chars as $char) {
            $new_combinations[] = $combination . $char;
        }
    }
    return sampling($chars, $size - 1, $new_combinations);
}
로그인 후 복사

$chars = ['a', 'b', 'c']:

$output = sampling($chars, 2);
var_dump($output);
로그인 후 복사

인 예를 고려해 보세요. 출력은 크기 2의 가능한 모든 조합을 표시합니다.

array(9) {
  [0]=>
  string(2) "aa"
  [1]=>
  string(2) "ab"
  [2]=>
  string(2) "ac"
  [3]=>
  string(2) "ba"
  [4]=>
  string(2) "bb"
  [5]=>
  string(2) "bc"
  [6]=>
  string(2) "ca"
  [7]=>
  string(2) "cb"
  [8]=>
  string(2) "cc"
}
로그인 후 복사

이 재귀적 접근 방식은 모든 조합을 효과적으로 생성하여 다음을 보장합니다. 초기 세트보다 더 큰 사이즈의 조합도 가능합니다.

위 내용은 문자 세트에서 특정 크기의 모든 조합을 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿