Binomialkoeffizienten berechnen
In diesem Schritt lernen Sie, wie Sie Binomialkoeffizienten berechnen, um eine bestimmte Zeile des Pascalschen Dreiecks zu generieren. Wir erweitern das vorherige Programm, um die Koeffizienten mithilfe einer Funktion zu berechnen.
Öffnen Sie die bestehende Datei:
cd ~/project
nano pascal_triangle.c
Ersetzen Sie den vorherigen Code durch die folgende Implementierung:
#include <stdio.h>
// Funktion zur Berechnung des Binomialkoeffizienten
int binomialCoeff(int n, int k) {
// Basisfälle
if (k == 0 || k == n)
return 1;
// Rekursive Berechnung anhand der Eigenschaft des Pascalschen Dreiecks
return binomialCoeff(n-1, k-1) + binomialCoeff(n-1, k);
}
int main() {
int zeilenNummer;
printf("Geben Sie die Zeilenzahl für das Pascalsche Dreieck ein: ");
scanf("%d", &zeilenNummer);
printf("Binomialkoeffizienten für Zeile %d:\n", zeilenNummer);
// Generieren und Ausgeben der Koeffizienten
for (int k = 0; k < zeilenNummer; k++) {
printf("%d ", binomialCoeff(zeilenNummer - 1, k));
}
printf("\n");
return 0;
}
Kompilieren und ausführen:
gcc pascal_triangle.c -o pascal_triangle
./pascal_triangle
Beispielausgabe:
Geben Sie die Zeilenzahl für das Pascalsche Dreieck ein: 5
Binomialkoeffizienten für Zeile 5:
1 4 6 4 1
Code-Erklärung:
- Die Funktion
binomialCoeff()
berechnet rekursiv die Binomialkoeffizienten.
- Basisfälle behandeln die ersten und letzten Elemente jeder Zeile.
- Die Funktion nutzt die rekursive Eigenschaft des Pascalschen Dreiecks.
- Die verschachtelte Schleife generiert die Koeffizienten für die angegebene Zeile.
Wichtige Punkte:
- Binomialkoeffizienten repräsentieren die Zahlen in jeder Zeile des Pascalschen Dreiecks.
- Die rekursive Berechnung demonstriert die mathematische Beziehung.
- Die Zeitkomplexität ist aufgrund des rekursiven Ansatzes exponentiell.