Definir un Experimento Aleatorio
En este paso, exploraremos cómo definir un experimento aleatorio utilizando la simulación de Monte Carlo en C. Un experimento aleatorio es un proceso con resultados inciertos que puede simularse utilizando técnicas de probabilidad.
Entendiendo los Experimentos Aleatorios
Creemos un programa C simple para demostrar un experimento aleatorio básico: la simulación del lanzamiento de una moneda.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM_ENSAYOS 1000
int main() {
// Semilla para el generador de números aleatorios
srand(time(NULL));
// Contador de caras
int caras_conteo = 0;
// Simular lanzamientos de moneda
for (int i = 0; i < NUM_ENSAYOS; i++) {
// Generar un número aleatorio 0 o 1
int lanzamiento = rand() % 2;
// Contar caras
if (lanzamiento == 0) {
caras_conteo++;
}
}
// Calcular la probabilidad de caras
double probabilidad = (double)caras_conteo / NUM_ENSAYOS;
printf("Experimento de Lanzamiento de Moneda:\n");
printf("Ensayos Totales: %d\n", NUM_ENSAYOS);
printf("Conteo de Caras: %d\n", caras_conteo);
printf("Probabilidad Estimada de Caras: %.2f\n", probabilidad);
return 0;
}
Ejemplo de salida:
Experimento de Lanzamiento de Moneda:
Ensayos Totales: 1000
Conteo de Caras: 502
Probabilidad Estimada de Caras: 0.50
Conceptos Clave Explicados
-
Generación de Números Aleatorios:
srand(time(NULL)) inicializa el generador de números aleatorios
rand() % 2 genera 0 o 1 con igual probabilidad
-
Diseño del Experimento:
- Definimos el lanzamiento de una moneda como nuestro experimento aleatorio
- Ejecutamos múltiples ensayos (1000 en este caso)
- Contamos el número de resultados exitosos (caras)
-
Estimación de Probabilidad:
- Probabilidad = (Número de Resultados Exitosos) / (Número Total de Ensayos)
- En este caso, esperamos una probabilidad cercana a 0.5 para caras
Compilar y Ejecutar el Programa
## Crear el archivo fuente
nano ~/project/experimento_moneda.c
## Compilar el programa
gcc ~/project/experimento_moneda.c -o ~/project/experimento_moneda
## Ejecutar el experimento
~/project/experimento_moneda
Ejemplo de compilación y ejecución:
## Compilación
gcc ~/project/experimento_moneda.c -o ~/project/experimento_moneda
## Ejecución
~/project/experimento_moneda
Experimento de Lanzamiento de Moneda:
Ensayos Totales: 1000
Conteo de Caras: 502
Probabilidad Estimada de Caras: 0.50