이제 3개의 선에 여러 점이 있습니다. 예를 들어 이 점들이 얼마나 많은 삼각형을 형성할 수 있는지 알아내야 합니다.
Input: m = 3, n = 4, k = 5 Output: 205 Input: m = 2, n = 2, k = 1 Output: 10
이 문제를 해결하기 위해 몇 가지 조합 수학을 적용하고 이를 해결하기 위한 몇 가지 공식을 공식화할 것입니다. 문제.
이 방법에서 우리는 공식을 고안할 것입니다: 현재 상황에 조합론을 적용하면 이 공식이 결과를 제공할 것입니다.
이것은 주어진 문제를 해결하기 위해 입력으로 사용할 수 있는 C++ 구문입니다. -
#include <bits/stdc++.h> #define MOD 1000000007 using namespace std; long long fact(long long n) { if(n <= 1) return 1; return ((n % MOD) * (fact(n-1) % MOD)) % MOD; } long long comb(int n, int r) { return (((fact(n)) % MOD) / ((fact(r) % MOD) * (fact(n-r) % MOD)) % MOD); } int main() { int n = 3; int m = 4; int r = 5; long long linen = comb(n, 3); // the combination of n with 3. long long linem = comb(m, 3); // the combination of m with 3. long long liner = comb(r, 3); //the combination of r with 3. long long answer = comb(n + m + r, 3); // all possible comb of n, m , r with 3. answer -= (linen + linem + liner); cout << answer << "\n"; return 0; }
205
이 방법에서 우리는 모든 것을 찾습니다. n+m+r과 세 개의 숫자의 가능한 조합, 즉 빗(n+m+r, 3). 이제 여러분은 세 점이 삼각형이 되기 위한 조건이 동일선상에 있을 수 없다는 것을 알고 있으므로 n, m, r의 조합을 합한 다음 이 합을 n+와 결합하여 얻은 가능한 모든 동일선상 점을 뺍니다. 세 숫자 m+r을 변경하면 답을 얻고 이를 인쇄합니다.
이 기사에서는 조합론을 적용하여 세 선의 점 집합에서 몇 개의 삼각형을 만들 수 있는지 계산하는 방법에 대해 설명합니다. 우리는 또한 이 문제를 해결하기 위해 C++ 프로그램과 완전한 방법(일반 방법)을 배웠습니다. C, Java, Python 등과 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.
위 내용은 C++로 작성하여 세 선의 점 집합으로 형성된 삼각형의 수를 구합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!