> 백엔드 개발 > C++ > 1부터 n까지의 모든 조합의 곱의 합

1부터 n까지의 모든 조합의 곱의 합

WBOY
풀어 주다: 2023-09-06 16:01:06
앞으로
1241명이 탐색했습니다.

1부터 n까지의 모든 조합의 곱의 합

1부터 n까지 숫자를 하나씩 취하다 보면 여러 가지 조합이 나올 수 있어요.

예를 들어 한 번에 하나의 숫자만 선택하면 조합 수는 nC1이 됩니다.

한 번에 두 개의 숫자를 취하면 조합 수는 nC2가 됩니다. 따라서 총 조합 수는 nC1 + nC2 +… + nCn이 됩니다.

모든 조합의 합을 구하려면 효율적인 방법을 사용해야 합니다. 그렇지 않으면 시간과 공간 복잡도가 매우 높아지게 됩니다.

문제 설명

1부터 N까지 매번 얻은 모든 숫자 조합의 곱의 합을 구합니다.

N은 주어진 숫자입니다.

들어가세요

으아아아

출력

으아아아

설명

으아아아

들어가세요

으아아아

출력

으아아아

무차별 접근 방식

무차별 방식은 모든 조합을 재귀적으로 생성하고 해당 제품을 찾은 다음 해당 합계를 찾는 것입니다.

재귀 C++ 프로그램 예

다음은 모든 조합(1부터 N까지)에서 매번 얻은 곱의 합을 구하는 재귀 C++ 프로그램입니다

으아아아

출력

으아아아

이 접근 방식의 재귀 트리를 생성하면 시간 복잡도가 기하급수적으로 증가한다는 것을 알 수 있습니다. 또한 많은 단계가 반복되어 프로그램이 중복되므로 매우 비효율적입니다.

효율적인 접근 방식(동적 프로그래밍)

효과적인 해결책은 동적 프로그래밍을 사용하고 중복을 제거하는 것입니다.

동적 프로그래밍은 문제를 하위 문제로 나누고 하위 문제를 해결하고 반복을 피하기 위해 결과를 저장하는 기술입니다.

동적 프로그래밍을 사용한 C++ 프로그램 예

아래는 동적 프로그래밍을 사용하여 한 번에 (1부터 N까지) 모든 조합의 합을 구하는 C++ 프로그램입니다.

으아아아

출력

으아아아

결론

이 글에서는 1부터 N까지의 모든 조합의 곱의 합을 구하는 문제에 대해 논의했습니다.

우리는 기하급수적인 시간 복잡도를 갖는 무차별 접근 방식으로 시작한 다음 동적 프로그래밍을 사용하여 수정했습니다. 두 방법 모두에 대한 C++ 프로그램도 제공됩니다.

위 내용은 1부터 n까지의 모든 조합의 곱의 합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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