Berechnung von Poisson-Wahrscheinlichkeiten in C

CCBeginner
Jetzt üben

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

Einführung

In diesem Labor lernen Sie, wie man Poisson-Wahrscheinlichkeiten in C berechnet. Die Poisson-Verteilung ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit angibt, dass eine bestimmte Anzahl von Ereignissen in einem festen Zeit- oder Raumintervall auftritt. Sie lernen zunächst, wie Sie den Lambda-Parameter (λ) und den k-Wert einlesen, und implementieren dann die Poisson-Wahrscheinlichkeitsformel, um die Wahrscheinlichkeit zu berechnen, dass genau k Ereignisse in einem gegebenen Intervall auftreten.

Das Labor behandelt den schrittweisen Prozess der Erstellung eines C-Programms zur Berechnung von Poisson-Wahrscheinlichkeiten, einschließlich der Handhabung der Benutzereingabe, der Implementierung der Poisson-Wahrscheinlichkeitsformel und der Ausgabe der berechneten Wahrscheinlichkeit.

λ (Lambda) und k einlesen

In diesem Schritt lernen Sie, wie Sie den Lambda-Parameter (λ) und den k-Wert zum Berechnen von Poisson-Wahrscheinlichkeiten in C einlesen. Die Poisson-Verteilung ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit angibt, dass eine bestimmte Anzahl von Ereignissen in einem festen Zeit- oder Raumintervall auftritt.

Erstellen wir zunächst eine neue C-Datei zur Implementierung unserer Poisson-Wahrscheinlichkeitsberechnung:

cd ~/project
nano poisson_prob.c

Fügen Sie nun den folgenden Code hinzu, um die Lambda- und k-Werte einzulesen:

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

int main() {
    double lambda;
    int k;

    printf("Geben Sie Lambda (durchschnittliche Anzahl von Ereignissen) ein: ");
    scanf("%lf", &lambda);

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

    printf("Lambda (λ): %.2f\n", lambda);
    printf("k: %d\n", k);

    return 0;
}

Beispielausgabe:

Geben Sie Lambda (durchschnittliche Anzahl von Ereignissen) ein: 3.5
Geben Sie k (Anzahl der Vorkommnisse) ein: 2
Lambda (λ): 3.50
k: 2

Lassen Sie uns den Code aufschlüsseln:

  • Wir verwenden double für Lambda, um Dezimalwerte zu ermöglichen.
  • scanf() wird verwendet, um die Benutzereingaben für Lambda und k zu lesen.
  • Der Formatbezeichner %lf wird für double (long float) Werte verwendet.
  • Der Formatbezeichner %d wird für Integer-Werte verwendet.
  • Wir geben die eingegebenen Werte aus, um die Eingabe zu bestätigen.

Kompilieren Sie das Programm:

gcc -o poisson_prob poisson_prob.c -lm

Führen Sie das Programm aus:

./poisson_prob

P(X=k)=e^(-λ)*λ^k/k!

In diesem Schritt implementieren Sie die Poisson-Wahrscheinlichkeitsformel, um die Wahrscheinlichkeit zu berechnen, dass genau k Ereignisse in einem gegebenen Intervall auftreten.

Öffnen Sie die vorherige Datei, um den Code zu ändern:

cd ~/project
nano poisson_prob.c

Aktualisieren Sie den Code, um die Berechnung der Poisson-Wahrscheinlichkeit einzuschließen:

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

// Funktion zur Berechnung der Fakultät
double factorial(int n) {
    if (n <= 1) return 1;
    double result = 1;
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}

// Berechnung der Poisson-Wahrscheinlichkeit
double poisson_probability(double lambda, int k) {
    double numerator = pow(lambda, k) * exp(-lambda);
    double denominator = factorial(k);
    return numerator / denominator;
}

int main() {
    double lambda;
    int k;

    printf("Geben Sie Lambda (durchschnittliche Anzahl von Ereignissen) ein: ");
    scanf("%lf", &lambda);

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

    double probability = poisson_probability(lambda, k);

    printf("Lambda (λ): %.2f\n", lambda);
    printf("k: %d\n", k);
    printf("Wahrscheinlichkeit P(X = %d): %.4f\n", k, probability);

    return 0;
}

Kompilieren Sie das Programm:

gcc -o poisson_prob poisson_prob.c -lm

Beispielausgabe:

Geben Sie Lambda (durchschnittliche Anzahl von Ereignissen) ein: 3.5
Geben Sie k (Anzahl der Vorkommnisse) ein: 2
Lambda (λ): 3.50
k: 2
Wahrscheinlichkeit P(X = 2): 0.1674

Wichtige Punkte im Code:

  • Die Funktion factorial() berechnet k!
  • poisson_probability() implementiert die Poisson-Wahrscheinlichkeitsformel
  • pow() berechnet λ^k
  • exp() berechnet e^(-λ)
  • Das Ergebnis ist die Wahrscheinlichkeit, dass genau k Ereignisse auftreten.

Führen Sie das Programm aus:

./poisson_prob

Ausgabe der Wahrscheinlichkeit

In diesem letzten Schritt erweitern Sie das Programm zur Berechnung der Poisson-Wahrscheinlichkeit, indem Sie detailliertere Wahrscheinlichkeitsausgaben und Formatierungen hinzufügen.

Öffnen Sie die vorherige Datei, um den Code zu ändern:

cd ~/project
nano poisson_prob.c

Aktualisieren Sie den Code, um die Darstellung der Wahrscheinlichkeit zu verbessern:

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

// Funktion zur Berechnung der Fakultät
double factorial(int n) {
    if (n <= 1) return 1;
    double result = 1;
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}

// Berechnung der Poisson-Wahrscheinlichkeit
double poisson_probability(double lambda, int k) {
    double numerator = pow(lambda, k) * exp(-lambda);
    double denominator = factorial(k);
    return numerator / denominator;
}

int main() {
    double lambda;
    int k;

    printf("Poisson-Wahrscheinlichkeitsrechner\n");
    printf("---------------------------------\n");

    printf("Geben Sie Lambda (durchschnittliche Anzahl von Ereignissen) ein: ");
    scanf("%lf", &lambda);

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

    double probability = poisson_probability(lambda, k);

    printf("\nBerechnungsergebnisse:\n");
    printf("Lambda (λ): %.2f\n", lambda);
    printf("k: %d\n", k);
    printf("Wahrscheinlichkeit P(X = %d): %.4f\n", k, probability);
    printf("Prozentwert: %.2f%%\n", probability * 100);

    return 0;
}

Kompilieren Sie das Programm:

gcc -o poisson_prob poisson_prob.c -lm

Beispielausgabe:

Poisson-Wahrscheinlichkeitsrechner
---------------------------------
Geben Sie Lambda (durchschnittliche Anzahl von Ereignissen) ein: 3.5
Geben Sie k (Anzahl der Vorkommnisse) ein: 2

Berechnungsergebnisse:
Lambda (λ): 3.50
k: 2
Wahrscheinlichkeit P(X = 2): 0.1674
Prozentwert: 16.74%

Verbesserungen:

  • Hinzufügen eines Titels für den Rechner
  • Einschließen der Prozentdarstellung
  • Verbesserte Ausgabeformatierung
  • Detailliertere Ausgabeabschnitte

Führen Sie das Programm aus:

./poisson_prob

Zusammenfassung

In diesem Labor haben Sie gelernt, wie man den Lambda-Parameter (λ) und den k-Wert zum Berechnen von Poisson-Wahrscheinlichkeiten in C liest. Anschließend haben Sie die Poisson-Wahrscheinlichkeitsformel implementiert, um die Wahrscheinlichkeit zu berechnen, dass genau k Ereignisse in einem gegebenen Intervall auftreten. Die Poisson-Verteilung ist eine Wahrscheinlichkeitsverteilung, die die Wahrscheinlichkeit einer bestimmten Anzahl von Ereignissen in einem festen Zeit- oder Raumintervall ausdrückt. Sie haben auch gelernt, wie man eine Fakultätsfunktion erstellt, um die Berechnung der Poisson-Wahrscheinlichkeit zu unterstützen.

Die wichtigsten Schritte in diesem Labor umfassen das Lesen der Eingabewerte, die Berechnung der Poisson-Wahrscheinlichkeit mithilfe der Formel P(X=k)=e^(-λ)*λ^k/k! und die Ausgabe der resultierenden Wahrscheinlichkeit.