> Java > java지도 시간 > 본문

Java에서 재귀를 사용하여 길이를 알 수 없는 여러 목록에서 가능한 모든 조합을 어떻게 생성할 수 있습니까?

DDD
풀어 주다: 2024-11-04 09:45:30
원래의
419명이 탐색했습니다.

How can I generate all possible combinations from multiple lists of unknown length using recursion in Java?

Java의 재귀를 사용하여 여러 목록에서 모든 조합의 반복 생성

일련의 목록에 직면하는 시나리오를 상상해 보세요. 각각은 공개되지 않은 길이를 가지고 있습니다. 귀하의 임무는 모든 고유한 조합 가능성을 통합하는 단일 목록을 생성하는 것입니다. 설명을 위해 다음 목록을 고려하십시오.

X: [A, B, C] 
Y: [W, X, Y, Z]
로그인 후 복사

이 목록에서 12개의 조합을 생성할 수 있습니다.

[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
로그인 후 복사

3개 요소로 구성된 세 번째 추가 목록이 도입된 경우, 총 조합 수는 36개로 확장됩니다.

이 복잡한 조합 생성을 달성하려면 재귀가 강력한 방법으로 등장합니다. 도구:

<code class="java">void generatePermutations(List<List<Character>> lists, List<String> result, int depth, String current) {
    if (depth == lists.size()) {
        result.add(current);
        return;
    }

    for (int i = 0; i < lists.get(depth).size(); i++) {
        generatePermutations(lists, result, depth + 1, current + lists.get(depth).get(i));
    }
}</code>
로그인 후 복사

세심하게 제작된 이 재귀 알고리즘에서 매개변수 목록은 불확실한 양과 길이를 특징으로 하는 입력 목록 모음을 나타냅니다. 결과 목록은 프로세스 중에 생성된 모든 순열의 저장소 역할을 합니다. 매개변수 깊이와 전류는 각각 입력 목록의 순회와 개별 조합의 구성을 용이하게 합니다.

이 생성 함수의 궁극적인 호출은 전체 프로세스를 조정합니다.

<code class="java">generatePermutations(lists, result, 0, "");</code>
로그인 후 복사

재귀와 Java 컬렉션 프레임워크의 조화로운 협력을 통해 이 알고리즘을 사용하면 임의의 대규모 앙상블에서 상상할 수 있는 모든 조합을 손쉽게 생성할 수 있습니다. 목록입니다.

위 내용은 Java에서 재귀를 사용하여 길이를 알 수 없는 여러 목록에서 가능한 모든 조합을 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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