Definir um Experimento Aleatório
Neste passo, exploraremos como definir um experimento aleatório usando a simulação de Monte Carlo em C. Um experimento aleatório é um processo com resultados incertos que pode ser simulado usando técnicas de probabilidade.
Compreendendo Experimentos Aleatórios
Vamos criar um programa C simples para demonstrar um experimento aleatório básico: a simulação do lançamento de uma moeda.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM_TRIALS 1000
int main() {
// Semente o gerador de números aleatórios
srand(time(NULL));
// Contagem de caras
int heads_count = 0;
// Simular lançamentos de moeda
for (int i = 0; i < NUM_TRIALS; i++) {
// Gerar um número aleatório 0 ou 1
int flip = rand() % 2;
// Contar caras
if (flip == 0) {
heads_count++;
}
}
// Calcular a probabilidade de caras
double probability = (double)heads_count / NUM_TRIALS;
printf("Experimento de Lançamento de Moeda:\n");
printf("Total de Ensaios: %d\n", NUM_TRIALS);
printf("Contagem de Caras: %d\n", heads_count);
printf("Probabilidade Estimada de Caras: %.2f\n", probability);
return 0;
}
Exemplo de saída:
Experimento de Lançamento de Moeda:
Total de Ensaios: 1000
Contagem de Caras: 502
Probabilidade Estimada de Caras: 0.50
Conceitos-chave Explicados
-
Geração de Números Aleatórios:
srand(time(NULL)) sementeia o gerador de números aleatórios
rand() % 2 gera 0 ou 1 com probabilidade igual
-
Design do Experimento:
- Definimos o lançamento de uma moeda como nosso experimento aleatório
- Executamos múltiplos ensaios (1000 neste caso)
- Contamos o número de resultados bem-sucedidos (caras)
-
Estimação da Probabilidade:
- Probabilidade = (Número de Resultados Bem-Sucedidos) / (Número Total de Ensaios)
- Neste caso, esperamos uma probabilidade próxima de 0,5 para caras
Compilar e Executar o Programa
## Criar o arquivo de origem
nano ~/project/coin_flip_experiment.c
## Compilar o programa
gcc ~/project/coin_flip_experiment.c -o ~/project/coin_flip_experiment
## Executar o experimento
~/project/coin_flip_experiment
Exemplo de saída de compilação e execução:
## Compilação
gcc ~/project/coin_flip_experiment.c -o ~/project/coin_flip_experiment
## Execução
~/project/coin_flip_experiment
Experimento de Lançamento de Moeda:
Total de Ensaios: 1000
Contagem de Caras: 502
Probabilidade Estimada de Caras: 0.50