Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/47: Рейтинг темы: голосов - 47, средняя оценка - 4.87
0 / 0 / 1
Регистрация: 29.04.2015
Сообщений: 14
1

Метод Монте-Карло

18.10.2017, 20:51. Показов 9210. Ответов 2
Метки нет (Все метки)

С помощью метода Монте-Карло найдите оценку объема шара, центр которой совпадает с началом координат. Результат сравните с теоретически вычисленным. Радиус шара задайте самостоятельно.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2017, 20:51
Ответы с готовыми решениями:

Метод Монте-Карло
Помогите написать программу для вычисления определенного интеграла методом Монте-Карло.

Метод Монте-Карло
Помогите написать программу на С++. Из множества 1, 2, ..., n, случайным образом извлекается с...

метод Монте-Карло
Трехмерное тело образовано объединением нескольких сфер произвольного размера и взаимного...

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

2
1469 / 1185 / 820
Регистрация: 29.02.2016
Сообщений: 3,579
18.10.2017, 21:34 2
Лучший ответ Сообщение было отмечено Dehino как решение

Решение

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
#include <iostream>
#include <ctime>
using namespace std;
double fRand(double fMin, double fMax)
{
    double f = (double)rand() / RAND_MAX;
    return fMin + f * (fMax - fMin);
}
int main()
{
    srand(time(NULL));
    double  R;
    const double pi = 3.14159265358979323846;
    cin >> R;
    int n = 1000000, m = 0;
    for (int i = 0; i < n; ++i)
    {
        double x = fRand(-R, R);
        double y = fRand(-R, R);
        double z = fRand(-R, R);
        if (x * x + y * y + z * z < R * R) m++;
    }
    cout << "V = " << R << " " << (double)m/n*8*R*R*R << " " << 4.0/3*pi*R*R*R << endl;
 
    return 0;
}
0
0 / 0 / 1
Регистрация: 29.04.2015
Сообщений: 14
18.10.2017, 21:37  [ТС] 3
Цитата Сообщение от afront Посмотреть сообщение
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
#include <iostream>
#include <ctime>
using namespace std;
double fRand(double fMin, double fMax)
{
    double f = (double)rand() / RAND_MAX;
    return fMin + f * (fMax - fMin);
}
int main()
{
    srand(time(NULL));
    double  R;
    const double pi = 3.14159265358979323846;
    cin >> R;
    int n = 1000000, m = 0;
    for (int i = 0; i < n; ++i)
    {
        double x = fRand(-R, R);
        double y = fRand(-R, R);
        double z = fRand(-R, R);
        if (x * x + y * y + z * z < R * R) m++;
    }
    cout << "V = " << R << " " << (double)m/n*8*R*R*R << " " << 4.0/3*pi*R*R*R << endl;
 
    return 0;
}
спасибо огромное
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2017, 21:37

Метод Монте-Карло
как мне перевести этот код на с++..... помогите пожалуста(( program MonteKarlo; uses crt; ...

метод Монте-Карло
всем привет, у меня вопрос по методу Монте - Карло, у меня есть код, #include &lt;stdlib.h&gt; #include...

вроде метод монте карло
распишите пожалуйста что делает это программа?? int i,a,b,n,k,c,d,e,f; double s1,s,x,y,z; int...

Метод Монте Карло (неправильные значения)
Пишу программу для подсчета определенного интеграла 3мя способами: прямоугольников, трапеций и...


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

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

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