Berechnung von Permutation und Kombination in der C-Sprache

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Permutation und Kombination sind zwei verschiedene mathematische Konzepte. Permutation ist die Anordnung von Objekten in einer bestimmten Reihenfolge. Kombination ist eine Auswahl von Objekten aus einer Menge ohne Berücksichtigung der Reihenfolge der ausgewählten Objekte. In diesem Lab werden wir lernen, wie man Permutation und Kombination mit der C-Sprache berechnet.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/ControlFlowGroup -.-> c/if_else("If...Else") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FunctionsGroup -.-> c/function_parameters("Function Parameters") c/FunctionsGroup -.-> c/recursion("Recursion") c/FileHandlingGroup -.-> c/create_files("Create Files") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/if_else -.-> lab-123209{{"Berechnung von Permutation und Kombination in der C-Sprache"}} c/function_declaration -.-> lab-123209{{"Berechnung von Permutation und Kombination in der C-Sprache"}} c/function_parameters -.-> lab-123209{{"Berechnung von Permutation und Kombination in der C-Sprache"}} c/recursion -.-> lab-123209{{"Berechnung von Permutation und Kombination in der C-Sprache"}} c/create_files -.-> lab-123209{{"Berechnung von Permutation und Kombination in der C-Sprache"}} c/user_input -.-> lab-123209{{"Berechnung von Permutation und Kombination in der C-Sprache"}} c/output -.-> lab-123209{{"Berechnung von Permutation und Kombination in der C-Sprache"}} end

Schreiben der Hauptfunktion

Zunächst erstellen wir in das Verzeichnis ~/project/ eine neue Datei namens main.c und schreiben den Anfangscode zum Einbinden von Header-Dateien und der Hauptfunktion.

#include <stdio.h>

int main() {
    printf("Permutation und Kombination in der C-Sprache\n\n");
    // Code zur Berechnung von Permutation und Kombination wird hier hinzugefügt
    return 0;
}

Schreiben der Fakultätsfunktion

Um Permutation und Kombination zu berechnen, müssen wir die Fakultät einer Zahl berechnen. Fakultäten können rekursiv berechnet werden. Fügen Sie den folgenden Code außerhalb der Hauptfunktion hinzu.

long factorial(int num) {
    if (num == 0) {
        return 1;
    }
    else {
        return num * factorial(num - 1);
    }
}

Diese Funktion nimmt eine Ganzzahl als Argument entgegen und gibt ihre Fakultät zurück.

Schreiben der Funktion zur Berechnung von nCr

Fügen Sie die folgende Funktion außerhalb der Hauptfunktion hinzu, um nCr zu berechnen.

long nCr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / (factorial(r) * factorial(n - r));
    }
}

Diese Funktion nimmt zwei Ganzzahlen, n und r, als Argumente entgegen und gibt den nCr-Wert zurück. Der nCr-Wert wird berechnet, indem die Fakultät von n durch das Produkt der Fakultät von r und der Fakultät von n-r dividiert wird.

Schreiben der Funktion zur Berechnung von nPr

Fügen Sie die folgende Funktion außerhalb der Hauptfunktion hinzu, um nPr zu berechnen.

long nPr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / factorial(n - r);
    }
}

Diese Funktion nimmt zwei Ganzzahlen, n und r, als Argumente entgegen und gibt den nPr-Wert zurück. Der nPr-Wert wird berechnet, indem die Fakultät von n durch die Fakultät von n-r dividiert wird.

Schreiben des Treibercodes des Programms

Fügen Sie den folgenden Code innerhalb der Hauptfunktion hinzu, um Eingaben zu entgegennehmen und die Ergebnisse anzuzeigen.

int main()
{
    int n, r;

    printf("Geben Sie den Wert von n ein:");
    scanf("%d", &n);
    printf("Geben Sie den Wert von r ein:");
    scanf("%d", &r);

    printf("nCr ist %ld\n", nCr(n, r));
    printf("nPr ist %ld\n", nPr(n, r));

    return 0;
}

Dieser Code nimmt die Eingabewerte für n und r vom Benutzer entgegen und ruft die Funktionen nCr() und nPr() auf, um die jeweiligen Werte zu berechnen und dann anzuzeigen.

Vollständiger Code

Der endgültige Code sieht wie folgt aus.

#include <stdio.h>

long factorial(int num) {
    if (num == 0) {
        return 1;
    }
    else {
        return num * factorial(num - 1);
    }
}

long nCr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / (factorial(r) * factorial(n - r));
    }
}

long nPr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / factorial(n - r);
    }
}

int main()
{
    int n, r;

    printf("Geben Sie den Wert von n ein:");
    scanf("%d", &n);
    printf("\nGeben Sie den Wert von r ein:");
    scanf("%d", &r);

    printf("nCr ist %ld\n", nCr(n, r));
    printf("nPr ist %ld\n", nPr(n, r));

    return 0;
}

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Permutation und Kombination in der C-Programmiersprache berechnet. Wir haben die Funktionen geschrieben, um Fakultät, nCr und nPr zu berechnen. Wir haben auch den Treibercode für das Programm geschrieben. Indem wir die obigen Schritte befolgen, können wir die Permutation und Kombination für die Benutzereingaben berechnen.