Heim > Backend-Entwicklung > C++ > Hauptteil

Ermitteln Sie in C++ die Anzahl der Dreiecke, die durch eine Menge von Punkten auf drei Geraden gebildet werden

王林
Freigeben: 2023-09-09 09:53:08
nach vorne
1258 Leute haben es durchsucht

Ermitteln Sie in C++ die Anzahl der Dreiecke, die durch eine Menge von Punkten auf drei Geraden gebildet werden

Jetzt sind in den drei Zeilen mehrere Punkte vorhanden. Wir müssen beispielsweise herausfinden, wie viele Dreiecke diese Punkte bilden können Frage.

Methode zur Lösungsfindung

In dieser Methode werden wir eine Formel entwickeln: Wenn wir die Kombinatorik auf die aktuelle Situation anwenden, wird uns diese Formel das Ergebnis liefern.

C++-Code für die obige Methode

Dies ist die C++-Syntax, die wir als Eingabe verwenden können, um das gegebene Problem zu lösen –

Beispiel

Input: m = 3, n = 4, k = 5
Output: 205

Input: m = 2, n = 2, k = 1
Output: 10
Nach dem Login kopieren

Ausgabe

#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;
}
Nach dem Login kopieren

Erklärung des obigen Codes

In dieser Methode finden wir All mögliche Kombinationen von n+m+r und drei Zahlen, also comb(n+m+r, 3). Nun wissen Sie, dass die Bedingung dafür, dass drei Punkte ein Dreieck werden, darin besteht, dass sie nicht kollinear sein können. Daher finden wir alle möglichen kollinearen Punkte, die wir durch Summieren der Kombinationen von n, m, r erhalten, und kombinieren diese Summe dann mit n+ Wenn sich die drei Zahlen m+r ändern, erhalten wir die Antwort und geben sie aus.

Fazit

In diesem Artikel wurde erläutert, wie man mithilfe der Kombinatorik berechnen kann, wie viele Dreiecke aus einer Menge von Punkten auf drei Linien gebildet werden können. Wir haben auch das C++-Programm und die vollständige Methode (normale Methode) gelernt, um dieses Problem zu lösen. Wir können das gleiche Programm in anderen Sprachen wie C, Java, Python und anderen Sprachen schreiben. Ich hoffe, dieser Artikel ist hilfreich für Sie.

Das obige ist der detaillierte Inhalt vonErmitteln Sie in C++ die Anzahl der Dreiecke, die durch eine Menge von Punkten auf drei Geraden gebildet werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!