> 백엔드 개발 > C++ > 본문

C++에서는 k개의 요소를 그룹으로 취하고 n개의 요소에서 r개의 요소를 배열합니다.

WBOY
풀어 주다: 2023-09-07 20:37:02
앞으로
1028명이 탐색했습니다.

C++에서는 k개의 요소를 그룹으로 취하고 n개의 요소에서 r개의 요소를 배열합니다.

n, r, k가 주어지면 이제 특정 k 항목이 항상 함께 나타나도록 n에서 r 항목을 선택하는 방법을 찾아야 합니다.

Input : n = 8, r = 5, k = 2

Output : 960


Input : n = 6, r = 2, k = 2

Output : 2
로그인 후 복사

이 문제를 해결하려면 약간의 지식이 필요합니다. 왜냐하면 이 문제에서는 k개 물체가 합쳐지도록 n과 r의 배열을 찾아야 하기 때문입니다.

Solution

우리는 답을 줄 수 있는 이 문제에 대한 공식을 공식화해야 합니다.

Example

#include <bits/stdc++.h>
using namespace std;
int fact(int n){ // function to calculate factorial of a number
    if(n <= 1)
        return 1;
    return n * fact(n-1);
}
int npr(int n, int r){ // finding permutation
    int pnr = fact(n) / fact(n - r);
    return pnr;
}
int countPermutations(int n, int r, int k){ // the formula that we came up with
    return fact(k) * (r - k + 1) * npr(n - k, r - k);
}
int main(){
    int n = 8;
    int r = 5;
    int k = 2;
    cout << countPermutations(n, r, k);
    return 0;
}
로그인 후 복사

Output

960
로그인 후 복사

위 코드 설명

위 방법에서 이 질문에 대한 답을 계산하기 위해 공식을 디자인하려고 하는데, 우리가 디자인한 공식은 (k!) * (r - k 입니다. + 1) *P(n-k, r-k). (P(x, y)는 x에서 y를 선택하는 순열의 개수이므로) 공식을 생각해내고 답을 계산합니다.

결론

이 튜토리얼에서는 한 번에 r개와 k개를 결합하는 순열을 찾는 문제를 해결했습니다. 우리는 또한 이 문제에 대한 C++ 프로그램과 이를 해결하는 완전한 방법(일반)을 배웠습니다.

C, Java, Python 및 기타 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 튜토리얼이 도움이 되었기를 바랍니다.

위 내용은 C++에서는 k개의 요소를 그룹으로 취하고 n개의 요소에서 r개의 요소를 배열합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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