Определение случайного эксперимента
В этом шаге мы рассмотрим, как определить случайный эксперимент, используя метод Монте-Карло в языке C. Случайный эксперимент — это процесс с неопределёнными результатами, который можно смоделировать с помощью вероятностных методов.
Понимание случайных экспериментов
Давайте создадим простую программу на C, чтобы продемонстрировать базовый случайный эксперимент: моделирование подбрасывания монеты.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM_TRIALS 1000
int main() {
// Инициализация генератора случайных чисел
srand(time(NULL));
// Счётчик выпадений орла
int heads_count = 0;
// Моделирование подбрасываний монеты
for (int i = 0; i < NUM_TRIALS; i++) {
// Генерация случайного числа 0 или 1
int flip = rand() % 2;
// Подсчёт выпадений орла
if (flip == 0) {
heads_count++;
}
}
// Расчёт вероятности выпадения орла
double probability = (double)heads_count / NUM_TRIALS;
printf("Эксперимент с подбрасыванием монеты:\n");
printf("Общее количество испытаний: %d\n", NUM_TRIALS);
printf("Количество выпадений орла: %d\n", heads_count);
printf("Оценённая вероятность выпадения орла: %.2f\n", probability);
return 0;
}
Пример вывода:
Эксперимент с подбрасыванием монеты:
Общее количество испытаний: 1000
Количество выпадений орла: 502
Оценённая вероятность выпадения орла: 0.50
Объяснение ключевых понятий
-
Генерация случайных чисел:
srand(time(NULL)) инициализирует генератор случайных чисел
rand() % 2 генерирует 0 или 1 с равной вероятностью
-
Проектирование эксперимента:
- Мы определяем подбрасывание монеты как наш случайный эксперимент
- Выполняем множество испытаний (1000 в данном случае)
- Подсчитываем количество успешных исходов (выпадение орла)
-
Оценка вероятности:
- Вероятность = (Количество успешных исходов) / (Общее количество испытаний)
- В данном случае мы ожидаем вероятность около 0,5 для выпадения орла
Компиляция и запуск программы
## Создайте исходный файл
nano ~/project/coin_flip_experiment.c
## Скомпилируйте программу
gcc ~/project/coin_flip_experiment.c -o ~/project/coin_flip_experiment
## Запустите эксперимент
~/project/coin_flip_experiment
Пример компиляции и вывода:
## Компиляция
gcc ~/project/coin_flip_experiment.c -o ~/project/coin_flip_experiment
## Выполнение
~/project/coin_flip_experiment
Эксперимент с подбрасыванием монеты:
Общее количество испытаний: 1000
Количество выпадений орла: 502
Оценённая вероятность выпадения орла: 0.50