Calculer les probabilités de la distribution de Poisson en C

CBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à calculer les probabilités de Poisson en C. La distribution de Poisson est une distribution de probabilité qui exprime la probabilité qu'un nombre donné d'événements se produise dans un intervalle de temps ou d'espace fixe. Vous apprendrez d'abord à lire le paramètre lambda (λ) et la valeur k, puis à implémenter la formule de probabilité de Poisson pour calculer la probabilité qu'exactement k événements se produisent dans un intervalle donné.

Ce laboratoire couvre le processus étape par étape d'écriture d'un programme C pour calculer les probabilités de Poisson, y compris la gestion des entrées utilisateur, l'implémentation de la formule de probabilité de Poisson et l'impression de la probabilité calculée.

Lecture de λ (lambda) et k

Dans cette étape, vous apprendrez à lire le paramètre lambda (λ) et la valeur k pour calculer les probabilités de Poisson en C. La distribution de Poisson est une distribution de probabilité qui exprime la probabilité qu'un nombre donné d'événements se produise dans un intervalle de temps ou d'espace fixe.

Tout d'abord, créons un nouveau fichier C pour implémenter notre calcul de probabilité de Poisson :

cd ~/project
nano poisson_prob.c

Maintenant, ajoutez le code suivant pour lire les valeurs de lambda et k :

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

int main() {
    double lambda;
    int k;

    printf("Entrez lambda (nombre moyen d'événements) : ");
    scanf("%lf", &lambda);

    printf("Entrez k (nombre d'occurrences) : ");
    scanf("%d", &k);

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

    return 0;
}

Exemple de sortie :

Entrez lambda (nombre moyen d'événements) : 3.5
Entrez k (nombre d'occurrences) : 2
Lambda (λ) : 3.50
k : 2

Décomposons le code :

  • Nous utilisons double pour lambda afin d'autoriser les valeurs décimales.
  • scanf() est utilisé pour lire les entrées utilisateur pour lambda et k.
  • Le spécificateur de format %lf est utilisé pour les valeurs double (long float).
  • Le spécificateur de format %d est utilisé pour les valeurs entières.
  • Nous affichons les valeurs saisies pour confirmer l'entrée.

Compilons le programme :

gcc -o poisson_prob poisson_prob.c -lm

Exécutons le programme :

./poisson_prob

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

Dans cette étape, vous implémenterez la formule de probabilité de Poisson pour calculer la probabilité qu'exactement k événements se produisent dans un intervalle donné.

Ouvrez le fichier précédent pour modifier le code :

cd ~/project
nano poisson_prob.c

Mettez à jour le code pour inclure le calcul de la probabilité de Poisson :

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

// Fonction pour calculer la factorielle
double factorial(int n) {
    if (n <= 1) return 1;
    double result = 1;
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}

// Calculer la probabilité de Poisson
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("Entrez lambda (nombre moyen d'événements) : ");
    scanf("%lf", &lambda);

    printf("Entrez k (nombre d'occurrences) : ");
    scanf("%d", &k);

    double probability = poisson_probability(lambda, k);

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

    return 0;
}

Compilez le programme :

gcc -o poisson_prob poisson_prob.c -lm

Exemple de sortie :

Entrez lambda (nombre moyen d'événements) : 3.5
Entrez k (nombre d'occurrences) : 2
Lambda (λ) : 3.50
k : 2
Probabilité P(X = 2) : 0.1674

Points clés du code :

  • La fonction factorial() calcule k!
  • poisson_probability() implémente la formule de probabilité de Poisson
  • pow() calcule λ^k
  • exp() calcule e^(-λ)
  • Le résultat est la probabilité qu'exactement k événements se produisent.

Exécutez le programme :

./poisson_prob

Affichage de la probabilité

Dans cette dernière étape, vous améliorerez le programme de calcul de probabilité de Poisson en ajoutant un affichage plus détaillé des probabilités et une mise en forme améliorée.

Ouvrez le fichier précédent pour modifier le code :

cd ~/project
nano poisson_prob.c

Mettez à jour le code pour améliorer la présentation des probabilités :

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

// Fonction pour calculer la factorielle
double factorial(int n) {
    if (n <= 1) return 1;
    double result = 1;
    for (int i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}

// Calculer la probabilité de Poisson
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("Calculateur de probabilité de Poisson\n");
    printf("-------------------------------------\n");

    printf("Entrez lambda (nombre moyen d'événements) : ");
    scanf("%lf", &lambda);

    printf("Entrez k (nombre d'occurrences) : ");
    scanf("%d", &k);

    double probability = poisson_probability(lambda, k);

    printf("\nRésultats du calcul :\n");
    printf("Lambda (λ) : %.2f\n", lambda);
    printf("k : %d\n", k);
    printf("Probabilité P(X = %d) : %.4f\n", k, probability);
    printf("Pourcentage : %.2f%%\n", probability * 100);

    return 0;
}

Compilez le programme :

gcc -o poisson_prob poisson_prob.c -lm

Exemple de sortie :

Calculateur de probabilité de Poisson
-------------------------------------
Entrez lambda (nombre moyen d'événements) : 3.5
Entrez k (nombre d'occurrences) : 2

Résultats du calcul :
Lambda (λ) : 3.50
k : 2
Probabilité P(X = 2) : 0.1674
Pourcentage : 16.74%

Améliorations clés :

  • Ajout d'un titre pour le calculateur
  • Inclusion de la représentation en pourcentage
  • Amélioration de la mise en forme de la sortie
  • Sections de sortie plus descriptives

Exécutez le programme :

./poisson_prob

Résumé

Dans ce laboratoire, vous avez appris à lire le paramètre lambda (λ) et la valeur k pour calculer les probabilités de Poisson en C. Vous avez ensuite implémenté la formule de probabilité de Poisson pour calculer la probabilité qu'exactement k événements se produisent dans un intervalle donné. La distribution de Poisson est une distribution de probabilité qui exprime la probabilité d'un nombre donné d'événements se produisant dans un intervalle de temps ou d'espace fixe. Vous avez également appris à créer une fonction factorielle pour prendre en charge le calcul de la probabilité de Poisson.

Les étapes clés abordées dans ce laboratoire incluent la lecture des valeurs d'entrée, le calcul de la probabilité de Poisson à l'aide de la formule P(X=k)=e^(-λ)*λ^k/k!, et l'impression de la probabilité résultante.