Introducción
En este laboratorio, aprenderemos cómo calcular probabilidades binomiales en el lenguaje de programación C. El laboratorio cubre los siguientes pasos:
- Leer los valores de entrada para el cálculo de la probabilidad binomial, incluyendo el número de ensayos (n), la probabilidad de éxito (p) y el número de éxitos (k).
- Implementar funciones para calcular el factorial y las combinaciones (n combinado k), que se utilizan en la fórmula de la probabilidad binomial.
- Calcular la probabilidad binomial utilizando la fórmula P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k), donde C(n,k) representa las combinaciones.
- Imprimir la probabilidad calculada.
Al final de este laboratorio, tendrás una sólida comprensión de cómo trabajar con probabilidades binomiales en C y podrás aplicar estos conceptos a diversos problemas del mundo real.
Leer n, p, k
En este paso, aprenderemos cómo leer los valores de entrada para el cálculo de la probabilidad binomial: n (número de ensayos), p (probabilidad de éxito) y k (número de éxitos).
Primero, creemos un programa en C para leer estos valores de entrada:
#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;
}
Guardemos este archivo y compílemoslo:
nano ~/project/binomial_prob.c
gcc ~/project/binomial_prob.c -o ~/project/binomial_prob
Ejemplo de salida al ejecutar el programa:
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
Este programa demuestra cómo:
- Declarar variables para n, p y k
- Usar
scanf()para leer entradas enteras y de punto flotante - Imprimir los valores de entrada para verificación
Los valores de entrada representan:
- n: Número total de ensayos independientes
- p: Probabilidad de éxito en cada ensayo
- k: Número de ensayos exitosos para los cuales queremos calcular la probabilidad
Calcular P(X=k)=C(n,k)p^k(1-p)^(n-k)
En este paso, extendaremos nuestro programa anterior para calcular la probabilidad binomial utilizando la fórmula P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k).
Agregaremos funciones para calcular las combinaciones y la probabilidad binomial:
#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;
}
Compila y ejecuta el programa:
gcc ~/project/binomial_prob.c -o ~/project/binomial_prob -lm
~/project/binomial_prob
Ejemplo de salida:
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
Componentes clave del cálculo de la probabilidad binomial:
factorial(): Calcula n!combinations(): Calcula C(n,k) o el número de formas de elegir k elementos de nbinomial_probability(): Calcula P(X=k) utilizando la fórmula completa- Función
pow()de math.h utilizada para la exponenciación
Imprimir la Probabilidad
En este paso, mejoraremos nuestro programa de cálculo de probabilidad binomial para proporcionar una salida más detallada y formateada del cálculo de la probabilidad.
Modificaremos el programa anterior para incluir representaciones adicionales de la probabilidad:
#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;
}
Compila y ejecuta el programa:
gcc ~/project/binomial_prob.c -o ~/project/binomial_prob -lm
~/project/binomial_prob
Ejemplo de salida:
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
Mejoras clave en este paso:
- Se agregó un formato detallado de los resultados.
- Se mostraron múltiples representaciones de la probabilidad.
- Se mejoró la legibilidad de la salida.
Resumen
En este laboratorio, aprendimos cómo leer los valores de entrada para el cálculo de la probabilidad binomial, incluyendo el número de ensayos (n), la probabilidad de éxito (p) y el número de éxitos (k). También implementamos funciones para calcular el factorial, las combinaciones y la fórmula de la probabilidad binomial P(X=k) = C(n,k) _ p^k _ (1-p)^(n-k). Esto nos permite calcular la probabilidad de observar k éxitos en n ensayos independientes, dado la probabilidad de éxito en cada ensayo.
Los pasos clave cubiertos en este laboratorio incluyen leer los valores de entrada, calcular la probabilidad binomial utilizando la fórmula y imprimir la probabilidad resultante. Este conocimiento se puede aplicar a diversos escenarios del mundo real donde la probabilidad binomial es relevante, como en estadística, toma de decisiones y análisis de riesgos.



