Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/23: Рейтинг темы: голосов - 23, средняя оценка - 4.70
yardie
9 / 9 / 2
Регистрация: 14.07.2010
Сообщений: 166
1

Вычисление числа Пи методом Монте-Карло

28.10.2010, 15:26. Просмотров 4288. Ответов 2
Метки нет (Все метки)

Решаю задачи по рандомным числам и столкнулся вот с такой"Вычисление числа Пи методом Монте-Карло". Подскажите как это реализовать в С++, мне для примера хотябы нужно!
1
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2010, 15:26
Ответы с готовыми решениями:

Вычисление числа Пи методом Монте-Карло
Всем доброго время суток. Написать программу для вычисления значения \pi с...

Вычисление интеграла методом Монте-Карло
Здравствуйте! Задача такая: пользователь в текстовом файле задает координаты...

Вычисление площади методом Монте-Карло
Всем доброго время суток. Написать программу для вычисления методом Монте-Карло...

Вычисление интеграла методом Монте-Карло
Здравствуйте. Помогите в написании программы. Вычислить приближенно интеграл...

Вычисление интеграла методом Монте-Карло
Нужно вычислить интеграл, как показано на первой картинке внизу темы. На второй...

2
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
28.10.2010, 15:57 2
Цитата Сообщение от yardie Посмотреть сообщение
Решаю задачи по рандомным числам и столкнулся вот с такой"Вычисление числа Пи методом Монте-Карло". Подскажите как это реализовать в С++, мне для примера хотябы нужно!
тут вполне внятно написано, как это делать.

Добавлено через 3 минуты
По идее еще можно как то так: площадь круга S=pi*r^2, задаешь радиус, находишь площадь методом монте-карло и выражаешь pi.
Еще можно считать интеграл пуассона (или тому подобное), а далее по аналогии с кругом.
0
Mr.X
Эксперт С++
3180 / 1707 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
29.10.2010, 13:52 3
Лучший ответ Сообщение было отмечено yardie как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//////////////////////////////////////////////////////////////////////////////////////
#include <cstdlib>
#include <ctime>
#include <iostream>
//////////////////////////////////////////////////////////////////////////////////////
typedef double  T_real;
//////////////////////////////////////////////////////////////////////////////////////
T_real  get_Monte_Carlo_pi(int  n)
{    
    int  count = 0;
    for(int i = 0; i < n; ++i)
    {
        T_real  X_coord = -1.0 + static_cast<T_real>(rand()) / RAND_MAX * 2.0;    
        T_real  Y_coord = -1.0 + static_cast<T_real>(rand()) / RAND_MAX * 2.0;
        if(X_coord * X_coord + Y_coord * Y_coord < 1.0)
        {
            ++count;
        }
    }
    return  static_cast<T_real>(count) / n * 4.0;
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    srand(static_cast<unsigned>(time(0)));
    std::cout << "Введите число испытаний: ";
    int n = 0;
    std::cin >> n;
    std::cout << "При "
              << n
              << " испытаний по методу Монте-Карло число ПИ равно: "
              << get_Monte_Carlo_pi(n)
              << std::endl;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2010, 13:52

Вычисление интеграла геометрическим методом Монте-Карло
Всем доброго времени суток. В универе дали задание: вычислить интеграл...

Вычисление объема произвольного тела методом Монте-Карло
Всем доброго время суток. Написать программу для вычисления методом Монте-Карло...

Интегрирование методом Монте-Карло
доброго времени суток форумчане, была поставлена задача написать программу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru