Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.77
yardie
 Аватар для yardie
8 / 8 / 0
Регистрация: 14.07.2010
Сообщений: 166
28.10.2010, 15:26     Вычисление числа Пи методом Монте-Карло #1
Решаю задачи по рандомным числам и столкнулся вот с такой"Вычисление числа Пи методом Монте-Карло". Подскажите как это реализовать в С++, мне для примера хотябы нужно!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2010, 15:26     Вычисление числа Пи методом Монте-Карло
Посмотрите здесь:

Вычисление числа Пи методом Монте-Карло C++
Вычисление площади методом Монте-Карло C++
Решения кратного интеграла методом Монте Карло на С++ C++
Вычисление объема произвольного тела методом Монте-Карло C++
Рассчет определенного интеграла методом Монте-Карло. C++
C++ Странный интеграл методом Монте-Карло
Таблица умножения методом Монте-Карло C++
C++ Вычисление интеграла методом Монте-Карло

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

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

Добавлено через 3 минуты
По идее еще можно как то так: площадь круга S=pi*r^2, задаешь радиус, находишь площадь методом монте-карло и выражаешь pi.
Еще можно считать интеграл пуассона (или тому подобное), а далее по аналогии с кругом.
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,655
29.10.2010, 13:52     Вычисление числа Пи методом Монте-Карло #3
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;
}
Yandex
Объявления
29.10.2010, 13:52     Вычисление числа Пи методом Монте-Карло
Ответ Создать тему
Опции темы

Текущее время: 19:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru