Calculer les probabilités binomiales en C

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à calculer les probabilités binomiales en langage de programmation C. Le laboratoire couvre les étapes suivantes :

  1. Lecture des valeurs d'entrée pour le calcul de la probabilité binomiale, y compris le nombre d'essais (n), la probabilité de succès (p) et le nombre de succès (k).
  2. Implémentation de fonctions pour calculer la factorielle et les combinaisons (n choose k), qui sont utilisées dans la formule de la probabilité binomiale.
  3. Calcul de la probabilité binomiale en utilisant la formule P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k), où C(n,k) représente les combinaisons.
  4. Affichage de la probabilité calculée.

À la fin de ce laboratoire, vous aurez une bonne compréhension de la manipulation des probabilités binomiales en C et pourrez appliquer ces concepts à divers problèmes du monde réel.


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{{"Calculer les probabilités binomiales en C"}} c/math_functions -.-> lab-435145{{"Calculer les probabilités binomiales en C"}} c/recursion -.-> lab-435145{{"Calculer les probabilités binomiales en C"}} c/user_input -.-> lab-435145{{"Calculer les probabilités binomiales en C"}} c/output -.-> lab-435145{{"Calculer les probabilités binomiales en C"}} end

Lire n, p, k

Dans cette étape, nous allons apprendre à lire les valeurs d'entrée pour le calcul de la probabilité binomiale : n (nombre d'essais), p (probabilité de succès) et k (nombre de succès).

Tout d'abord, créons un programme C pour lire ces valeurs d'entrée :

#include <stdio.h>

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

    printf("Enter number of trials (n): ");
    scanf("%d", &n);

    printf("Enter probability of success (p): ");
    scanf("%lf", &p);

    printf("Enter number of successes (k): ");
    scanf("%d", &k);

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

    return 0;
}

Enregistrons ce fichier et compilons - le :

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

Exemple de sortie lors de l'exécution du programme :

Enter number of trials (n): 10
Enter probability of success (p): 0.5
Enter number of successes (k): 6
Input values:
n = 10
p = 0.50
k = 6

Ce programme montre comment :

  1. Déclarer des variables pour n, p et k
  2. Utiliser scanf() pour lire des entrées entières et à virgule flottante
  3. Afficher les valeurs d'entrée pour vérification

Les valeurs d'entrée représentent :

  • n : Nombre total d'essais indépendants
  • p : Probabilité de succès à chaque essai
  • k : Nombre d'essais réussis pour lequel nous voulons calculer la probabilité

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

Dans cette étape, nous allons étendre notre programme précédent pour calculer la probabilité binomiale en utilisant la formule P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k).

Nous allons ajouter des fonctions pour calculer les combinaisons et la probabilité binomiale :

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

// Function to calculate factorial
unsigned long long factorial(int n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

// Function to calculate combinations (n choose k)
unsigned long long combinations(int n, int k) {
    return factorial(n) / (factorial(k) * factorial(n - k));
}

// Function to calculate binomial probability
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("Enter number of trials (n): ");
    scanf("%d", &n);

    printf("Enter probability of success (p): ");
    scanf("%lf", &p);

    printf("Enter number of successes (k): ");
    scanf("%d", &k);

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

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

    return 0;
}

Compilez et exécutez le programme :

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

Exemple de sortie :

Enter number of trials (n): 10
Enter probability of success (p): 0.5
Enter number of successes (k): 6
Binomial Probability P(X=6) = 0.205078

Éléments clés du calcul de la probabilité binomiale :

  1. factorial() : Calcule n!
  2. combinations() : Calcule C(n,k) ou le nombre de façons de choisir k éléments parmi n
  3. binomial_probability() : Calcule P(X=k) en utilisant la formule complète
  4. Fonction pow() de math.h utilisée pour l'exponentiation

Afficher la probabilité

Dans cette étape, nous allons améliorer notre programme de calcul de probabilité binomiale pour fournir une sortie plus détaillée et formatée du calcul de la probabilité.

Nous allons modifier le programme précédent pour inclure des représentations supplémentaires de la probabilité :

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

// Previous functions (factorial, combinations, binomial_probability) remain the same

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

    printf("Enter number of trials (n): ");
    scanf("%d", &n);

    printf("Enter probability of success (p): ");
    scanf("%lf", &p);

    printf("Enter number of successes (k): ");
    scanf("%d", &k);

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

    // Detailed probability output
    printf("\nProbability Calculation Results:\n");
    printf("-----------------------------\n");
    printf("Number of Trials (n):       %d\n", n);
    printf("Probability of Success (p): %.4f\n", p);
    printf("Number of Successes (k):    %d\n", k);

    // Different probability representations
    printf("\nProbability Representations:\n");
    printf("Decimal:     %f\n", prob);
    printf("Percentage:  %.2f%%\n", prob * 100);
    printf("Fraction:    1 in %.0f\n", 1.0 / prob);

    return 0;
}

Compilez et exécutez le programme :

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

Exemple de sortie :

Enter number of trials (n): 10
Enter probability of success (p): 0.5
Enter number of successes (k): 6

Probability Calculation Results:
-----------------------------
Number of Trials (n):       10
Probability of Success (p): 0.5000
Number of Successes (k):    6

Probability Representations:
Decimal:     0.205078
Percentage:  20.51%
Fraction:    1 in 5

Améliorations clés de cette étape :

  1. Ajout d'un formatage détaillé des résultats
  2. Affichage de plusieurs représentations de la probabilité
  3. Amélioration de la lisibilité de la sortie

Résumé

Dans ce laboratoire, nous avons appris à lire les valeurs d'entrée pour le calcul de la probabilité binomiale, y compris le nombre d'essais (n), la probabilité de succès (p) et le nombre de succès (k). Nous avons également implémenté des fonctions pour calculer la factorielle, les combinaisons et la formule de la probabilité binomiale P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k). Cela nous permet de calculer la probabilité d'observer k succès dans n essais indépendants, étant donné la probabilité de succès à chaque essai.

Les étapes clés couvertes dans ce laboratoire incluent la lecture des valeurs d'entrée, le calcul de la probabilité binomiale en utilisant la formule et l'affichage de la probabilité résultante. Cette connaissance peut être appliquée à divers scénarios du monde réel où la probabilité binomiale est pertinente, comme en statistique, dans la prise de décision et l'analyse des risques.