Binomialwahrscheinlichkeiten in C berechnen

CCBeginner
Jetzt üben

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

Einführung

In diesem Lab werden wir lernen, wie man Binomialwahrscheinlichkeiten in der Programmiersprache C berechnet. Das Lab umfasst die folgenden Schritte:

  1. Einlesen der Eingabewerte für die Binomialwahrscheinlichkeitsberechnung, einschließlich der Anzahl der Versuche (n), der Erfolgswahrscheinlichkeit (p) und der Anzahl der Erfolge (k).
  2. Implementieren von Funktionen zur Berechnung der Fakultät und der Kombinationen (n über k), die in der Binomialwahrscheinlichkeitsformel verwendet werden.
  3. Berechnen der Binomialwahrscheinlichkeit mit der Formel P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k), wobei C(n,k) die Kombinationen darstellt.
  4. Ausgeben der berechneten Wahrscheinlichkeit.

Am Ende dieses Labs werden Sie ein solides Verständnis davon haben, wie man mit Binomialwahrscheinlichkeiten in C arbeitet, und können diese Konzepte auf verschiedene reale Probleme anwenden.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/FunctionsGroup -.-> c/math_functions("Math Functions") c/FunctionsGroup -.-> c/recursion("Recursion") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-435145{{"Binomialwahrscheinlichkeiten in C berechnen"}} c/math_functions -.-> lab-435145{{"Binomialwahrscheinlichkeiten in C berechnen"}} c/recursion -.-> lab-435145{{"Binomialwahrscheinlichkeiten in C berechnen"}} c/user_input -.-> lab-435145{{"Binomialwahrscheinlichkeiten in C berechnen"}} c/output -.-> lab-435145{{"Binomialwahrscheinlichkeiten in C berechnen"}} end

Einlesen von n, p, k

In diesem Schritt werden wir lernen, wie man Eingabewerte für die Binomialwahrscheinlichkeitsberechnung einliest: n (Anzahl der Versuche), p (Erfolgswahrscheinlichkeit) und k (Anzahl der Erfolge).

Zunächst erstellen wir ein C-Programm, um diese Eingabewerte einzulesen:

#include <stdio.h>

int main() {
    int n, k;
    double p;

    printf("Geben Sie die Anzahl der Versuche (n) ein: ");
    scanf("%d", &n);

    printf("Geben Sie die Erfolgswahrscheinlichkeit (p) ein: ");
    scanf("%lf", &p);

    printf("Geben Sie die Anzahl der Erfolge (k) ein: ");
    scanf("%d", &k);

    printf("Eingabewerte:\n");
    printf("n = %d\n", n);
    printf("p = %.2f\n", p);
    printf("k = %d\n", k);

    return 0;
}

Speichern wir diese Datei und kompilieren wir sie:

nano ~/project/binomial_prob.c
gcc ~/project/binomial_prob.c -o ~/project/binomial_prob

Beispielausgabe beim Ausführen des Programms:

Geben Sie die Anzahl der Versuche (n) ein: 10
Geben Sie die Erfolgswahrscheinlichkeit (p) ein: 0.5
Geben Sie die Anzahl der Erfolge (k) ein: 6
Eingabewerte:
n = 10
p = 0.50
k = 6

Dieses Programm zeigt, wie man:

  1. Variablen für n, p und k deklariert
  2. scanf() verwendet, um Ganzzahl- und Gleitkommaeingaben einzulesen
  3. Die Eingabewerte zur Überprüfung ausgibt

Die Eingabewerte repräsentieren:

  • n: Gesamtanzahl der unabhängigen Versuche
  • p: Erfolgswahrscheinlichkeit bei jedem Versuch
  • k: Anzahl der erfolgreichen Versuche, für die wir die Wahrscheinlichkeit berechnen möchten

Berechnung von P(X=k)=C(n,k)p^k(1-p)^(n-k)

In diesem Schritt erweitern wir unser vorheriges Programm, um die Binomialwahrscheinlichkeit mit der Formel P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k) zu berechnen.

Wir werden Funktionen hinzufügen, um Kombinationen und Binomialwahrscheinlichkeiten zu berechnen:

#include <stdio.h>
#include <math.h>

// Funktion zur Berechnung der Fakultät
unsigned long long factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

// Funktion zur Berechnung der Kombinationen (n über k)
unsigned long long combinations(int n, int k) {
    return factorial(n) / (factorial(k) * factorial(n - k));
}

// Funktion zur Berechnung der Binomialwahrscheinlichkeit
double binomial_probability(int n, int k, double p) {
    unsigned long long combinations_value = combinations(n, k);
    double probability = combinations_value *
                         pow(p, k) *
                         pow(1 - p, n - k);
    return probability;
}

int main() {
    int n, k;
    double p;

    printf("Geben Sie die Anzahl der Versuche (n) ein: ");
    scanf("%d", &n);

    printf("Geben Sie die Erfolgswahrscheinlichkeit (p) ein: ");
    scanf("%lf", &p);

    printf("Geben Sie die Anzahl der Erfolge (k) ein: ");
    scanf("%d", &k);

    double prob = binomial_probability(n, k, p);

    printf("Binomialwahrscheinlichkeit P(X=%d) = %f\n", k, prob);

    return 0;
}

Kompilieren und ausführen Sie das Programm:

gcc ~/project/binomial_prob.c -o ~/project/binomial_prob -lm
~/project/binomial_prob

Beispielausgabe:

Geben Sie die Anzahl der Versuche (n) ein: 10
Geben Sie die Erfolgswahrscheinlichkeit (p) ein: 0.5
Geben Sie die Anzahl der Erfolge (k) ein: 6
Binomialwahrscheinlichkeit P(X=6) = 0.205078

Wichtige Bestandteile der Binomialwahrscheinlichkeitsberechnung:

  1. factorial(): Berechnet n!
  2. combinations(): Berechnet C(n,k) oder die Anzahl der Möglichkeiten, k Elemente aus n auszuwählen
  3. binomial_probability(): Berechnet P(X=k) mit der vollständigen Formel
  4. Die pow()-Funktion aus math.h wird für die Potenzierung verwendet

Ausgabe der Wahrscheinlichkeit

In diesem Schritt verbessern wir unser Programm zur Berechnung der Binomialwahrscheinlichkeit, um eine detailliertere und formatierte Ausgabe der Wahrscheinlichkeitsberechnung zu liefern.

Wir ändern das vorherige Programm, um zusätzliche Darstellungen der Wahrscheinlichkeit einzubeziehen:

#include <stdio.h>
#include <math.h>

// Die vorherigen Funktionen (Fakultät, Kombinationen, Binomialwahrscheinlichkeit) bleiben unverändert

int main() {
    int n, k;
    double p;

    printf("Geben Sie die Anzahl der Versuche (n) ein: ");
    scanf("%d", &n);

    printf("Geben Sie die Erfolgswahrscheinlichkeit (p) ein: ");
    scanf("%lf", &p);

    printf("Geben Sie die Anzahl der Erfolge (k) ein: ");
    scanf("%d", &k);

    double prob = binomial_probability(n, k, p);

    // Detaillierte Ausgabe der Wahrscheinlichkeit
    printf("\nErgebnisse der Wahrscheinlichkeitsberechnung:\n");
    printf("-----------------------------\n");
    printf("Anzahl der Versuche (n):       %d\n", n);
    printf("Erfolgswahrscheinlichkeit (p): %.4f\n", p);
    printf("Anzahl der Erfolge (k):    %d\n", k);

    // Verschiedene Darstellungen der Wahrscheinlichkeit
    printf("\nDarstellungen der Wahrscheinlichkeit:\n");
    printf("Dezimal:     %f\n", prob);
    printf("Prozent:  %.2f%%\n", prob * 100);
    printf("Bruch:    1 von %.0f\n", 1.0 / prob);

    return 0;
}

Kompilieren und ausführen Sie das Programm:

gcc ~/project/binomial_prob.c -o ~/project/binomial_prob -lm
~/project/binomial_prob

Beispielausgabe:

Geben Sie die Anzahl der Versuche (n) ein: 10
Geben Sie die Erfolgswahrscheinlichkeit (p) ein: 0.5
Geben Sie die Anzahl der Erfolge (k) ein: 6

Ergebnisse der Wahrscheinlichkeitsberechnung:
-----------------------------
Anzahl der Versuche (n):       10
Erfolgswahrscheinlichkeit (p): 0.5000
Anzahl der Erfolge (k):    6

Darstellungen der Wahrscheinlichkeit:
Dezimal:     0.205078
Prozent:  20.51%
Bruch:    1 von 5

Wichtige Verbesserungen in diesem Schritt:

  1. Hinzufügen einer detaillierten Formatierung der Ergebnisse
  2. Anzeigen mehrerer Darstellungen der Wahrscheinlichkeit
  3. Verbesserung der Lesbarkeit der Ausgabe

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Eingabewerte für die Binomialwahrscheinlichkeitsberechnung einliest, einschließlich der Anzahl der Versuche (n), der Erfolgswahrscheinlichkeit (p) und der Anzahl der Erfolge (k). Wir haben auch Funktionen implementiert, um die Fakultät, Kombinationen und die Binomialwahrscheinlichkeitsformel P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k) zu berechnen. Dies ermöglicht es uns, die Wahrscheinlichkeit zu berechnen, k Erfolge in n unabhängigen Versuchen zu beobachten, gegeben die Erfolgswahrscheinlichkeit bei jedem Versuch.

Die wichtigsten Schritte, die in diesem Lab behandelt wurden, umfassen das Einlesen von Eingabewerten, die Berechnung der Binomialwahrscheinlichkeit mit der Formel und die Ausgabe der resultierenden Wahrscheinlichkeit. Dieses Wissen kann auf verschiedene reale Szenarien angewendet werden, in denen die Binomialwahrscheinlichkeit relevant ist, wie beispielsweise in der Statistik, der Entscheidungsfindung und der Risikoanalyse.